Re: [PATCH v3 00/10] Rework REFCOUNT_FULL using atomic_fetch_* operations
On 2019/10/7 23:46, Will Deacon wrote: > Hi all, > > This is version three of the patches I previously posted here: > > v1: https://lkml.kernel.org/r/20190802101000.12958-1-w...@kernel.org > v2: https://lkml.kernel.org/r/20190827163204.29903-1-w...@kernel.org > > Changes since v2 include: > > - Remove the x86 assembly version and enable this code unconditionally > - Move saturation warnings out-of-line to reduce image bloat > > Cheers, > > Will > > Cc: Kees Cook > Cc: Ingo Molnar > Cc: Elena Reshetova > Cc: Peter Zijlstra > Cc: Ard Biesheuvel > Cc: Hanjun Guo > Cc: Jan Glauber > I tested on top of 5.4-rc2 (with Jan's open-read-close file test case), on a 96 CPU cores ARM64 server, I can see no much difference under 24 cores (each 24 core is a NUMA node), but +5.9% performance improve on 48 cores and +8.4% for 96 cores. For the ARM64 arch, Tested-by: Hanjun Guo Thanks Hanjun
[PATCH v3 00/10] Rework REFCOUNT_FULL using atomic_fetch_* operations
Hi all, This is version three of the patches I previously posted here: v1: https://lkml.kernel.org/r/20190802101000.12958-1-w...@kernel.org v2: https://lkml.kernel.org/r/20190827163204.29903-1-w...@kernel.org Changes since v2 include: - Remove the x86 assembly version and enable this code unconditionally - Move saturation warnings out-of-line to reduce image bloat Cheers, Will Cc: Kees Cook Cc: Ingo Molnar Cc: Elena Reshetova Cc: Peter Zijlstra Cc: Ard Biesheuvel Cc: Hanjun Guo Cc: Jan Glauber --->8 Will Deacon (10): lib/refcount: Define constants for saturation and max refcount values lib/refcount: Ensure integer operands are treated as signed lib/refcount: Remove unused refcount_*_checked() variants lib/refcount: Move bulk of REFCOUNT_FULL implementation into header lib/refcount: Improve performance of generic REFCOUNT_FULL code lib/refcount: Move saturation warnings out of line lib/refcount: Consolidate REFCOUNT_{MAX,SATURATED} definitions refcount: Consolidate implementations of refcount_t lib/refcount: Remove unused 'refcount_error_report()' function drivers/lkdtm: Remove references to CONFIG_REFCOUNT_FULL arch/Kconfig | 21 --- arch/arm/Kconfig | 1 - arch/arm64/Kconfig | 1 - arch/s390/configs/debug_defconfig | 1 - arch/x86/Kconfig | 1 - arch/x86/include/asm/asm.h | 6 - arch/x86/include/asm/refcount.h| 126 -- arch/x86/mm/extable.c | 49 -- drivers/gpu/drm/i915/Kconfig.debug | 1 - drivers/misc/lkdtm/refcount.c | 11 +- include/linux/kernel.h | 7 - include/linux/refcount.h | 231 +- kernel/panic.c | 11 -- lib/refcount.c | 255 +++-- 14 files changed, 219 insertions(+), 503 deletions(-) delete mode 100644 arch/x86/include/asm/refcount.h -- 2.23.0.581.g78d2f28ef7-goog