mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 07:40:53 +07:00
memory hotplug: document the memory hotplug notifier
Add description about event notification callback routine to the document Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
a24e785111
commit
10020ca246
@ -2,7 +2,8 @@
|
||||
Memory Hotplug
|
||||
==============
|
||||
|
||||
Last Updated: Jul 28 2007
|
||||
Created: Jul 28 2007
|
||||
Add description of notifier of memory hotplug Oct 11 2007
|
||||
|
||||
This document is about memory hotplug including how-to-use and current status.
|
||||
Because Memory Hotplug is still under development, contents of this text will
|
||||
@ -24,7 +25,8 @@ be changed often.
|
||||
6.1 Memory offline and ZONE_MOVABLE
|
||||
6.2. How to offline memory
|
||||
7. Physical memory remove
|
||||
8. Future Work List
|
||||
8. Memory hotplug event notifier
|
||||
9. Future Work List
|
||||
|
||||
Note(1): x86_64's has special implementation for memory hotplug.
|
||||
This text does not describe it.
|
||||
@ -307,8 +309,58 @@ Need more implementation yet....
|
||||
- Notification completion of remove works by OS to firmware.
|
||||
- Guard from remove if not yet.
|
||||
|
||||
--------------------------------
|
||||
8. Memory hotplug event notifier
|
||||
--------------------------------
|
||||
Memory hotplug has event notifer. There are 6 types of notification.
|
||||
|
||||
MEMORY_GOING_ONLINE
|
||||
Generated before new memory becomes available in order to be able to
|
||||
prepare subsystems to handle memory. The page allocator is still unable
|
||||
to allocate from the new memory.
|
||||
|
||||
MEMORY_CANCEL_ONLINE
|
||||
Generated if MEMORY_GOING_ONLINE fails.
|
||||
|
||||
MEMORY_ONLINE
|
||||
Generated when memory has succesfully brought online. The callback may
|
||||
allocate pages from the new memory.
|
||||
|
||||
MEMORY_GOING_OFFLINE
|
||||
Generated to begin the process of offlining memory. Allocations are no
|
||||
longer possible from the memory but some of the memory to be offlined
|
||||
is still in use. The callback can be used to free memory known to a
|
||||
subsystem from the indicated memory section.
|
||||
|
||||
MEMORY_CANCEL_OFFLINE
|
||||
Generated if MEMORY_GOING_OFFLINE fails. Memory is available again from
|
||||
the section that we attempted to offline.
|
||||
|
||||
MEMORY_OFFLINE
|
||||
Generated after offlining memory is complete.
|
||||
|
||||
A callback routine can be registered by
|
||||
hotplug_memory_notifier(callback_func, priority)
|
||||
|
||||
The second argument of callback function (action) is event types of above.
|
||||
The third argument is passed by pointer of struct memory_notify.
|
||||
|
||||
struct memory_notify {
|
||||
unsigned long start_pfn;
|
||||
unsigned long nr_pages;
|
||||
int status_cahnge_nid;
|
||||
}
|
||||
|
||||
start_pfn is start_pfn of online/offline memory.
|
||||
nr_pages is # of pages of online/offline memory.
|
||||
status_change_nid is set node id when N_HIGH_MEMORY of nodemask is (will be)
|
||||
set/clear. It means a new(memoryless) node gets new memory by online and a
|
||||
node loses all memory. If this is -1, then nodemask status is not changed.
|
||||
If status_changed_nid >= 0, callback should create/discard structures for the
|
||||
node if necessary.
|
||||
|
||||
--------------
|
||||
8. Future Work
|
||||
9. Future Work
|
||||
--------------
|
||||
- allowing memory hot-add to ZONE_MOVABLE. maybe we need some switch like
|
||||
sysctl or new control file.
|
||||
|
Loading…
Reference in New Issue
Block a user