mm and cache_info: remove unnecessary CPU cache info update
authorHuang Ying <ying.huang@intel.com>
Fri, 26 Jan 2024 08:19:44 +0000 (16:19 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 22 Feb 2024 18:24:41 +0000 (10:24 -0800)
commit5cec4eb7fad6fb1e9a3dd8403b558d1eff7490ff
tree4c0221b586d5d937922a89ee0cb7c1c4b076192d
parent96200c915040c2ec6f6c173a29caf9f7c9c15a7e
mm and cache_info: remove unnecessary CPU cache info update

For each CPU hotplug event, we will update per-CPU data slice size and
corresponding PCP configuration for every online CPU to make the
implementation simple.  But, Kyle reported that this takes tens seconds
during boot on a machine with 34 zones and 3840 CPUs.

So, in this patch, for each CPU hotplug event, we only update per-CPU data
slice size and corresponding PCP configuration for the CPUs that share
caches with the hotplugged CPU.  With the patch, the system boot time
reduces 67 seconds on the machine.

Link: https://lkml.kernel.org/r/20240126081944.414520-1-ying.huang@intel.com
Fixes: 362d37a106dd ("mm, pcp: reduce lock contention for draining high-order pages")
Signed-off-by: "Huang, Ying" <ying.huang@intel.com>
Originally-by: Kyle Meyer <kyle.meyer@hpe.com>
Reported-and-tested-by: Kyle Meyer <kyle.meyer@hpe.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/base/cacheinfo.c
include/linux/gfp.h
mm/page_alloc.c