On 12/26/2012 11:10 AM, Kamezawa Hiroyuki wrote:
(2012/12/24 21:09), Tang Chen wrote:
quoted
From: Yasuaki Ishimatsu<redacted>
We remove the memory like this:
1. lock memory hotplug
2. offline a memory block
3. unlock memory hotplug
4. repeat 1-3 to offline all memory blocks
5. lock memory hotplug
6. remove memory(TODO)
7. unlock memory hotplug
All memory blocks must be offlined before removing memory. But we don't hold
the lock in the whole operation. So we should check whether all memory blocks
are offlined before step6. Otherwise, kernel maybe panicked.
Signed-off-by: Wen Congyang<redacted>
Signed-off-by: Yasuaki Ishimatsu<redacted>
Acked-by: KAMEZAWA Hiroyuki<redacted>
a nitpick below.
quoted
+
+ for (pfn = start_pfn; pfn< end_pfn; pfn += PAGES_PER_SECTION) {
I prefer adding mem = NULL at the start of this for().
Hi Kamezawa-san,
Added, thanks. :)
quoted
+ section_nr = pfn_to_section_nr(pfn);
+ if (!present_section_nr(section_nr))
+ continue;
+
+ section = __nr_to_section(section_nr);
+ /* same memblock? */
+ if (mem)
+ if ((section_nr>= mem->start_section_nr)&&
+ (section_nr<= mem->end_section_nr))
+ continue;
+
Thanks,
-Kame