All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dennis Zhou <dennis@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Tejun Heo <tj@kernel.org>, Christoph Lameter <cl@linux.com>,
	Mateusz Guzik <mjguzik@gmail.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: [GIT PULL] percpu changes for v6.6-rc1
Date: Wed, 30 Aug 2023 17:10:05 -0700	[thread overview]
Message-ID: <ZO/aXSBuVRuqFHtz@snowbird> (raw)

Hi Linus,

There is 1 bigger change to percpu_counter's api allowing for init and
destroy of multiple counters via percpu_counter_init_many() and
percpu_counter_destroy_many(). This is used to help begin remediating a
performance regression with percpu rss stats.

Additionally, it seems larger core count machines are feeling the burden
of the single threaded allocation of percpu. Mateusz is thinking about
it and I will spend some time on it too.

Thanks,
Dennis

The following changes since commit 5d0c230f1de8c7515b6567d9afba1f196fb4e2f4:

  Linux 6.5-rc4 (2023-07-30 13:23:47 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu.git tags/percpu-for-6.6

for you to fetch changes up to 14ef95be6f5558fb9e43aaf06ef9a1d6e0cae6c8:

  kernel/fork: group allocation/free of per-cpu counters for mm struct (2023-08-25 08:10:35 -0700)

----------------------------------------------------------------
percpu: changes for v6.6

percpu
* A couple cleanups by Baoquan He and Bibo Mao. The only behavior change
  is to start printing messages if we're under the warn limit for failed
  atomic allocations.

percpu_counter
* Shakeel introduced percpu counters into mm_struct which caused percpu
  allocations be on the hot path [1]. Originally I spent some time
  trying to improve the percpu allocator, but instead preferred what
  Mateusz Guzik proposed grouping at the allocation site,
  percpu_counter_init_many(). This allows a single percpu allocation to
  be shared by the counters. I like this approach because it creates a
  shared lifetime by the allocations. Additionally, I believe many inits
  have higher level synchronization requirements, like percpu_counter
  does against HOTPLUG_CPU. Therefore we can group these optimizations
  together.

[1] https://lore.kernel.org/linux-mm/20221024052841.3291983-1-shakeelb@google.com/

----------------------------------------------------------------
Baoquan He (3):
      mm/percpu.c: remove redundant check
      mm/percpu.c: optimize the code in pcpu_setup_first_chunk() a little bit
      mm/percpu.c: print error message too if atomic alloc failed

Bibo Mao (1):
      mm/percpu: Remove some local variables in pcpu_populate_pte

Mateusz Guzik (2):
      pcpcntr: add group allocation/free
      kernel/fork: group allocation/free of per-cpu counters for mm struct

 include/linux/percpu_counter.h | 41 ++++++++++++++++++++-----
 kernel/fork.c                  | 15 +++------
 lib/percpu_counter.c           | 62 +++++++++++++++++++++++++------------
 mm/percpu.c                    | 69 +++++++++++++++++-------------------------
 4 files changed, 109 insertions(+), 78 deletions(-)

             reply	other threads:[~2023-08-31  0:10 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-31  0:10 Dennis Zhou [this message]
2023-09-01 23:19 ` [GIT PULL] percpu changes for v6.6-rc1 pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZO/aXSBuVRuqFHtz@snowbird \
    --to=dennis@kernel.org \
    --cc=cl@linux.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mjguzik@gmail.com \
    --cc=tj@kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.