Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 71960
b: refs/heads/master
c: 10020ca
h: refs/heads/master
v: v3
  • Loading branch information
Yasunori Goto authored and Linus Torvalds committed Oct 22, 2007
1 parent b4f4935 commit 0ead434
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a24e785111a32ccb7cebafd24b1b1cb474ea8e5d
refs/heads/master: 10020ca246c55744dad815ad4f15e1f488ca55a8
58 changes: 55 additions & 3 deletions trunk/Documentation/memory-hotplug.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.
Expand Down Expand Up @@ -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.
Expand Down

0 comments on commit 0ead434

Please sign in to comment.