mm and cache_info: remove unnecessary CPU cache info update
Huang Ying authored
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: 362d37a1

 ("mm, pcp: reduce lock contention for draining high-order pages")
Signed-off-by: default avatar"Huang, Ying" <ying.huang@intel.com>
Originally-by: default avatarKyle Meyer <kyle.meyer@hpe.com>
Reported-and-tested-by: default avatarKyle Meyer <kyle.meyer@hpe.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
5cec4eb7
Name Last commit Last update
Documentation dax: add a sysfs knob to control memmap_on_memory behavior
LICENSES LICENSES: Add the copyleft-next-0.3.1 license
arch mm: convert mm_counter() to take a folio
block blk-iocost: Fix an UBSAN shift-out-of-bounds warning
certs Merge tag 'v6.7-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
crypto crypto: algif_hash - Remove bogus SGL free on zero-length error path
drivers mm and cache_info: remove unnecessary CPU cache info update
fs userfaultfd: fix return error if mmap_changing is non-zero in MOVE ioctl
include mm and cache_info: remove unnecessary CPU cache info update
init update workarounds for gcc "asm goto" issue
io_uring io_uring/net: fix multishot accept overflow handling
ipc shm: Slim down dependencies
kernel mm: convert mm_counter_file() to take a folio
lib maple_tree: avoid duplicate variable init in mast_spanning_rebalance()
mm mm and cache_info: remove unnecessary CPU cache info update
net Merge tag 'net-6.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
rust Merge tag 'rust-6.8' of https://github.com/Rust-for-Linux/linux
samples work around gcc bugs with 'asm goto' with outputs
scripts scripts/gdb/vmalloc: fix vmallocinfo error
security Merge tag 'lsm-pr-20240215' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm
sound ALSA: usb-audio: More relaxed check of MIDI jack names
tools selftests/mm: new test that steals pages
usr Merge tag 'kbuild-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
virt Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
.clang-format clang-format: Update with v6.7-rc4's `for_each` macro list
.cocciconfig
.editorconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
.rustfmt.toml
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile
README
Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.