From: Oscar Salvador <osalvador@suse.de>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: David Hildenbrand <david@redhat.com>,
Vlastimil Babka <vbabka@suse.cz>,
Jonathan Cameron <Jonathan.Cameron@huawei.com>,
Harry Yoo <harry.yoo@oracle.com>, Rakie Kim <rakie.kim@sk.com>,
Hyeonggon Yoo <42.hyeyoo@gmail.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Oscar Salvador <osalvador@suse.de>
Subject: [PATCH v7 00/11] Implement numa node notifier
Date: Mon, 16 Jun 2025 15:51:43 +0200 [thread overview]
Message-ID: <20250616135158.450136-1-osalvador@suse.de> (raw)
v6 -> v7:
- Split previous patch#10 in two, one for page_ext
and the other to drop status_change_nid (per David)
- Implement feedback on simplifying previous cancel_on_*
notifiers and better document the fact that we consumers
can get called on _CANCEL_* actions before having been called
for previous actions (per David)
- Add Acks-by
v5 -> v6:
- Remove redundant checks (per David)
- Fix build failure
- Drop 'nid' parameter from memory notify (Per David)
- Add RB/ACKs-by
v4 -> v5:
- Split out conversion for different consumers (per David)
- Renamed node-notifier actions (per David)
- Added new Documentation for new node-notifier and updated
the memory-notifier one to reflect the changes
- Make sure we do not trigger anything when !CONFIG_NUMA (per David)
v3 -> v4:
- Fix typos pointed out by Alok Tiwari
- Further cleanups suggested by Vlastimil
- Add RBs-by from Vlastimil
v2 -> v3:
- Add Suggested-by (David)
- Replace last N_NORMAL_MEMORY mention in slub (David)
- Replace the notifier for autoweitght-mempolicy
- Fix build on !CONFIG_MEMORY_HOTPLUG
v1 -> v2:
- Remove status_change_nid_normal and the code that
deals with it (David & Vlastimil)
- Remove slab_mem_offline_callback (David & Vlastimil)
- Change the order of canceling the notifiers
in {online,offline}_pages (Vlastimil)
- Fix up a couple of whitespaces (Jonathan Cameron)
- Add RBs-by
Memory notifier is a tool that allow consumers to get notified whenever
memory gets onlined or offlined in the system.
Currently, there are 10 consumers of that, but 5 out of those 10 consumers
are only interested in getting notifications when a numa node changes its
memory state.
That means going from memoryless to memory-aware of vice versa.
Which means that for every {online,offline}_pages operation they get
notified even though the numa node might not have changed its state.
This is suboptimal, and we want to decouple numa node state changes from
memory state changes.
While we are doing this, remove status_change_nid_normal, as the only
current user (slub) does not really need it.
This allows us to further simplify and clean up the code.
The first patch gets rid of status_change_nid_normal in slub.
The second patch implements a numa node notifier that does just that, and have
those consumers register in there, so they get notified only when they are
interested.
The third patch replaces 'status_change_nid{_normal}' fields within
memory_notify with a 'nid', as that is only what we need for memory
notifer and update the only user of it (page_ext).
Consumers that are only interested in numa node states change are:
- memory-tier
- slub
- cpuset
- hmat
- cxl
- autoweight-mempolicy
Oscar Salvador (11):
mm,slub: Do not special case N_NORMAL nodes for slab_nodes
mm,memory_hotplug: Remove status_change_nid_normal and update
documentation
mm,memory_hotplug: Implement numa node notifier
mm,slub: Use node-notifier instead of memory-notifier
mm,memory-tiers: Use node-notifier instead of memory-notifier
drivers,cxl: Use node-notifier instead of memory-notifier
drivers,hmat: Use node-notifier instead of memory-notifier
kernel,cpuset: Use node-notifier instead of memory-notifier
mm,mempolicy: Use node-notifier instead of memory-notifier
mm,page_ext: Derive the node from the pfn
mm,memory_hotplug: Drop status_change_nid parameter from memory_notify
Documentation/core-api/memory-hotplug.rst | 91 +++++++++--
.../zh_CN/core-api/memory-hotplug.rst | 3 -
drivers/acpi/numa/hmat.c | 8 +-
drivers/base/node.c | 21 +++
drivers/cxl/core/region.c | 16 +-
drivers/cxl/cxl.h | 4 +-
include/linux/memory.h | 2 -
include/linux/node.h | 40 +++++
kernel/cgroup/cpuset.c | 2 +-
mm/memory-tiers.c | 19 +--
mm/memory_hotplug.c | 152 +++++++-----------
mm/mempolicy.c | 13 +-
mm/page_ext.c | 17 +-
mm/slub.c | 60 ++-----
14 files changed, 243 insertions(+), 205 deletions(-)
--
2.49.0
next reply other threads:[~2025-06-16 13:52 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-16 13:51 Oscar Salvador [this message]
2025-06-16 13:51 ` [PATCH v7 01/11] mm,slub: Do not special case N_NORMAL nodes for slab_nodes Oscar Salvador
2025-06-16 13:51 ` [PATCH v7 02/11] mm,memory_hotplug: Remove status_change_nid_normal and update documentation Oscar Salvador
2025-06-16 13:51 ` [PATCH v7 03/11] mm,memory_hotplug: Implement numa node notifier Oscar Salvador
2025-06-16 14:31 ` David Hildenbrand
2025-06-16 13:51 ` [PATCH v7 04/11] mm,slub: Use node-notifier instead of memory-notifier Oscar Salvador
2025-06-16 13:51 ` [PATCH v7 05/11] mm,memory-tiers: " Oscar Salvador
2025-06-16 13:51 ` [PATCH v7 06/11] drivers,cxl: " Oscar Salvador
2025-06-16 13:51 ` [PATCH v7 07/11] drivers,hmat: " Oscar Salvador
2025-06-16 13:51 ` [PATCH v7 08/11] kernel,cpuset: " Oscar Salvador
2025-06-16 13:51 ` [PATCH v7 09/11] mm,mempolicy: " Oscar Salvador
2025-06-17 0:14 ` Gregory Price
2025-06-16 13:51 ` [PATCH v7 10/11] mm,page_ext: Derive the node from the pfn Oscar Salvador
2025-06-16 13:51 ` [PATCH v7 11/11] mm,memory_hotplug: Drop status_change_nid parameter from memory_notify Oscar Salvador
2025-06-16 14:11 ` Vlastimil Babka
2025-06-16 14:32 ` [PATCH v7 00/11] Implement numa node notifier David Hildenbrand
2025-06-17 9:26 ` Oscar Salvador
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=20250616135158.450136-1-osalvador@suse.de \
--to=osalvador@suse.de \
--cc=42.hyeyoo@gmail.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=akpm@linux-foundation.org \
--cc=david@redhat.com \
--cc=harry.yoo@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=rakie.kim@sk.com \
--cc=vbabka@suse.cz \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).