Re: [PATCH v3 00/10] Rework REFCOUNT_FULL using atomic_fetch_* operations

2019-10-09 Thread Hanjun Guo
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

2019-10-07 Thread Will Deacon
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