pcpcntr: add group allocation/free
authorMateusz Guzik <mjguzik@gmail.com>
Wed, 23 Aug 2023 05:06:08 +0000 (07:06 +0200)
committerDennis Zhou <dennis@kernel.org>
Fri, 25 Aug 2023 15:06:53 +0000 (08:06 -0700)
commitc439d5e8a0deb7310b5bb4e5f2fe47c40ff5297f
treeec3fa53c5487f15036a02f6eb29d70896302baa5
parentf7d77dfc91f747f64cb00884fd6d7940c3b49fca
pcpcntr: add group allocation/free

Allocations and frees are globally serialized on the pcpu lock (and the
CPU hotplug lock if enabled, which is the case on Debian).

At least one frequent consumer allocates 4 back-to-back counters (and
frees them in the same manner), exacerbating the problem.

While this does not fully remedy scalability issues, it is a step
towards that goal and provides immediate relief.

Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Reviewed-by: Dennis Zhou <dennis@kernel.org>
Reviewed-by: Vegard Nossum <vegard.nossum@oracle.com>
Link: https://lore.kernel.org/r/20230823050609.2228718-2-mjguzik@gmail.com
[Dennis: reflowed a few lines]
Signed-off-by: Dennis Zhou <dennis@kernel.org>
include/linux/percpu_counter.h
lib/percpu_counter.c