Re: [PATCH v5 5/5] lib/percpu-list: Add a config parameter for disabling per-cpu list

From: Waiman Long
Date: Wed Mar 02 2016 - 16:55:24 EST


On 03/02/2016 03:41 AM, Ingo Molnar wrote:
* Waiman Long<Waiman.Long@xxxxxxx> wrote:

As there is concern that the larger pcpu_list_node structure and the
per-cpu overhead may be a waste of resource on small system. This patch
adds a config parameter CONFIG_PERCPU_LIST to disable the per-cpu list
if the kernel builder chooses to do so. With per-cpu list disabled,
all the different groups of per-cpu lists will be degenerated into
global lists for all the CPUs.

The current default is to enable per-cpu list. A kernel builder needs
to explicitly turn it off.

Signed-off-by: Waiman Long<Waiman.Long@xxxxxxx>
---
fs/inode.c | 2 +-
include/linux/percpu-list.h | 93 ++++++++++++++++++++++++++++++++++++++++++-
lib/Kconfig | 14 ++++++
lib/percpu-list.c | 24 +++++++++++-
4 files changed, 130 insertions(+), 3 deletions(-)
I think this kind of #ifdef complexity and the doubling of our Kconfig and testing
space is counterproductive, and I think the per CPU locking is a win on as small
as dual core CPUs, and on UP CPUs the per CPU list becomes a single global list
automatically.

I'm not against visible memory savings for overly clever scalability features, but
this does not appear to be such a case, so:

NAKed-by: Ingo Molnar<mingo@xxxxxxxxxx>

Thanks,

Ingo

The last patch was there to answer a feedback from Jan. I am fine if that is not merged as I prefer to have the per-cpu list capability as the default anyway.

Cheers,
Longman