[PATCH v2 0/2] cfi: free old cfi shadow asynchronously

Haibo Li posted 2 patches 2 years, 2 months ago
kernel/Makefile |  3 ---
kernel/cfi.c    | 14 +++++++++++---
2 files changed, 11 insertions(+), 6 deletions(-)
[PATCH v2 0/2] cfi: free old cfi shadow asynchronously
Posted by Haibo Li 2 years, 2 months ago
This patchset changes synchronize_rcu to call_rcu in update_shadow.

Patch 1 enables the CFI sanitization for cfi.c and 
bypass __cfi_slowpath_diag.
It is the prerequisite for using call_rcu in cfi.c.

Patch 2 changes synchronize_rcu to call_rcu and
free old cfi shadow in rcu cb

Changes in v2:
 - Remove _run_cfi_check,add __nocfi to __cfi_slowpath_diag directly
 - Rename _cfi_shadow_free_rcu to free_shadow

Haibo Li (2):
  cfi: enable sanitize for cfi.c
  cfi: free old cfi shadow asynchronously

 kernel/Makefile |  3 ---
 kernel/cfi.c    | 14 +++++++++++---
 2 files changed, 11 insertions(+), 6 deletions(-)

-- 
2.25.1
Re: [PATCH v2 0/2] cfi: free old cfi shadow asynchronously
Posted by Sami Tolvanen 2 years, 2 months ago
On Mon, Jul 04, 2022 at 09:40:44AM +0800, Haibo Li wrote:
> This patchset changes synchronize_rcu to call_rcu in update_shadow.
> 
> Patch 1 enables the CFI sanitization for cfi.c and 
> bypass __cfi_slowpath_diag.
> It is the prerequisite for using call_rcu in cfi.c.
> 
> Patch 2 changes synchronize_rcu to call_rcu and
> free old cfi shadow in rcu cb
> 
> Changes in v2:
>  - Remove _run_cfi_check,add __nocfi to __cfi_slowpath_diag directly
>  - Rename _cfi_shadow_free_rcu to free_shadow
> 
> Haibo Li (2):
>   cfi: enable sanitize for cfi.c
>   cfi: free old cfi shadow asynchronously
> 
>  kernel/Makefile |  3 ---
>  kernel/cfi.c    | 14 +++++++++++---
>  2 files changed, 11 insertions(+), 6 deletions(-)

Thanks for sending v2! For the series:

Reviewed-by: Sami Tolvanen <samitolvanen@google.com>

Sami
Re: [PATCH v2 0/2] cfi: free old cfi shadow asynchronously
Posted by Yongqin Liu 1 year, 9 months ago
Hi, Haibo, Sami

Thanks for the changes here!

With the Linaro LKFT project[1], we noticed there is about 5 seconds
boottime improvement for the 5.15 kernel Android builds.
And after some investigation, we found it's these changes
made the improvement.
And I'd like to share one of the test results here for your information:

====>>> data started here
 Linux 5.15: 5.15-gki-android13-aosp-master-rb5-boottime
    boottime:
    Index Build Number boottime-fresh-install#KERNEL_BOOT_TIME_avg
boottime-fresh-install#ANDROID_BOOT_TIME_avg
boottime-fresh-install#TOTAL_BOOT_TIME_avg
boottime-reboot#KERNEL_BOOT_TIME_avg
boottime-reboot#ANDROID_BOOT_TIME_avg
boottime-reboot#TOTAL_BOOT_TIME_avg
    1 5.15.41-aec224bb9ebc 1.6 37.19 38.79 1.61 30.14 31.75
    2 5.15.41-c2162eca3f66 1.62 36.92 38.53 1.62 30.04 31.66
    3 5.15.41-e796ee569574 1.62 37.27 38.89 1.62 30.01 31.62
    4 5.15.41-432cf292eb20 1.62 41.64 43.26 1.61 35.16 36.76
    5 5.15.41-a3829998513a 1.62 42.2 43.82 1.61 35.4 37.01
<<<==== data ended here

# the improvements started from build#5.15.41-e796ee569574 since these
changes were submitted to the ACK[3]
# the unit of the data is seconds
# boottime-fresh items are data for the first time boot after deployment
# boottime-reboot items are the average data for the 2nd ~ 7th data
with the minimum and maximum excluded.
# for the meaning of
KERNEL_BOOT_TIME/ANDROID_BOOT_TIME/TOTAL_BOOT_TIME please see the
description here[2]

[1]: https://source.android.com/docs/core/architecture/kernel/android-common?hl=en#linaro-kernel-functional-testing
[2]: https://github.com/Linaro/test-definitions/blob/master/automated/android/boottime/device-script.sh
[3]: https://android-review.googlesource.com/q/I08dcb29ef97453b836efd0d64286196600be8cce

Thanks,
Yongqin Liu

On Tue, 12 Jul 2022 at 03:20, Sami Tolvanen <samitolvanen@google.com> wrote:
>
> On Mon, Jul 04, 2022 at 09:40:44AM +0800, Haibo Li wrote:
> > This patchset changes synchronize_rcu to call_rcu in update_shadow.
> >
> > Patch 1 enables the CFI sanitization for cfi.c and
> > bypass __cfi_slowpath_diag.
> > It is the prerequisite for using call_rcu in cfi.c.
> >
> > Patch 2 changes synchronize_rcu to call_rcu and
> > free old cfi shadow in rcu cb
> >
> > Changes in v2:
> >  - Remove _run_cfi_check,add __nocfi to __cfi_slowpath_diag directly
> >  - Rename _cfi_shadow_free_rcu to free_shadow
> >
> > Haibo Li (2):
> >   cfi: enable sanitize for cfi.c
> >   cfi: free old cfi shadow asynchronously
> >
> >  kernel/Makefile |  3 ---
> >  kernel/cfi.c    | 14 +++++++++++---
> >  2 files changed, 11 insertions(+), 6 deletions(-)
>
> Thanks for sending v2! For the series:
>
> Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
>
> Sami



-- 
Best Regards,
Yongqin Liu
---------------------------------------------------------------
#mailing list
linaro-android@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-android