Inter-revision diff: cover letter

Comparing v3 (message) to v5 (message)

--- v3
+++ v5
@@ -1,116 +1,145 @@
-The patch-set was divided from following thread's patch-set.
-    https://lkml.org/lkml/2012/9/5/201
+This patch series aims to support physical memory hot-remove.
 
-The last version of this patchset:
-    https://lkml.org/lkml/2012/10/23/213
+The patches can free/remove following things:
 
-If you want to know the reason, please read following thread.
-
-https://lkml.org/lkml/2012/10/2/83
-
-The patch-set has only the function of kernel core side for physical
-memory hot remove. So if you use the patch, please apply following
-patches.
-
-- bug fix for memory hot remove
-  https://lkml.org/lkml/2012/10/31/269
-  
-- acpi framework
-  https://lkml.org/lkml/2012/10/26/175
-
-The patches can free/remove the following things:
-
-  - /sys/firmware/memmap/X/{end, start, type} : [PATCH 2/10]
-  - mem_section and related sysfs files       : [PATCH 3-4/10]
-  - memmap of sparse-vmemmap                  : [PATCH 5-7/10]
-  - page table of removed memory              : [RFC PATCH 8/10]
-  - node and related sysfs files              : [RFC PATCH 9-10/10]
-
-* [PATCH 2/10] checks whether the memory can be removed or not.
+  - acpi_memory_info                          : [RFC PATCH 4/19]
+  - /sys/firmware/memmap/X/{end, start, type} : [RFC PATCH 8/19]
+  - iomem_resource                            : [RFC PATCH 9/19]
+  - mem_section and related sysfs files       : [RFC PATCH 10-11, 13-16/19]
+  - page table of removed memory              : [RFC PATCH 12/19]
+  - node and related sysfs files              : [RFC PATCH 18-19/19]
 
 If you find lack of function for physical memory hot-remove, please let me
 know.
 
-How to test this patchset?
-1. apply this patchset and build the kernel. MEMORY_HOTPLUG, MEMORY_HOTREMOVE,
-   ACPI_HOTPLUG_MEMORY must be selected.
-2. load the module acpi_memhotplug
-3. hotplug the memory device(it depends on your hardware)
-   You will see the memory device under the directory /sys/bus/acpi/devices/.
-   Its name is PNP0C80:XX.
-4. online/offline pages provided by this memory device
-   You can write online/offline to /sys/devices/system/memory/memoryX/state to
-   online/offline pages provided by this memory device
-5. hotremove the memory device
-   You can hotremove the memory device by the hardware, or writing 1 to
-   /sys/bus/acpi/devices/PNP0C80:XX/eject.
+change log of v5:
+ * merge the patchset to clear page table and the patchset to hot remove
+   memory(from ishimatsu) to one big patchset.
 
-Note: if the memory provided by the memory device is used by the kernel, it
-can't be offlined. It is not a bug.
+ [RFC PATCH v5 1/19]
+   * rename remove_memory() to offline_memory()/offline_pages()
 
-Known problems:
-1. hotremoving memory device may cause kernel panicked
-   This bug will be fixed by Liu Jiang's patch:
-   https://lkml.org/lkml/2012/7/3/1
+ [RFC PATCH v5 2/19]
+   * new patch: implement offline_memory(). This function offlines pages,
+     update memory block's state, and notify the userspace that the memory
+     block's state is changed.
+
+ [RFC PATCH v5 4/19]
+   * offline and remove memory in acpi_memory_disable_device() too.
+
+ [RFC PATCH v5 17/19]
+   * new patch: add a new function __remove_zone() to revert the things done
+     in the function __add_zone().
+
+ [RFC PATCH v5 18/19]
+   * flush work befor reseting node device.
+
+change log of v4:
+ * remove "memory-hotplug : unify argument of firmware_map_add_early/hotplug"
+   from the patch series, since the patch is a bugfix. It is being disccussed
+   on other thread. But for testing the patch series, the patch is needed.
+   So I added the patch as [PATCH 0/13].
+
+ [RFC PATCH v4 2/13]
+   * check memory is online or not at remove_memory()
+   * add memory_add_physaddr_to_nid() to acpi_memory_device_remove() for
+     getting node id
+ 
+ [RFC PATCH v4 3/13]
+   * create new patch : check memory is online or not at online_pages()
+
+ [RFC PATCH v4 4/13]
+   * add __ref section to remove_memory()
+   * call firmware_map_remove_entry() before remove_sysfs_fw_map_entry()
+
+ [RFC PATCH v4 11/13]
+   * rewrite register_page_bootmem_memmap() for removing page used as PT/PMD
+
+change log of v3:
+ * rebase to 3.5.0-rc6
+
+ [RFC PATCH v2 2/13]
+   * remove extra kobject_put()
+
+   * The patch was commented by Wen. Wen's comment is
+     "acpi_memory_device_remove() should ignore a return value of
+     remove_memory() since caller does not care the return value".
+     But I did not change it since I think caller should care the
+     return value. And I am trying to fix it as follow:
+
+     https://lkml.org/lkml/2012/7/5/624
+
+ [RFC PATCH v2 4/13]
+   * remove a firmware_memmap_entry allocated by kzmalloc()
+
+change log of v2:
+ [RFC PATCH v2 2/13]
+   * check whether memory block is offline or not before calling offline_memory()
+   * check whether section is valid or not in is_memblk_offline()
+   * call kobject_put() for each memory_block in is_memblk_offline()
+
+ [RFC PATCH v2 3/13]
+   * unify the end argument of firmware_map_add_early/hotplug
+
+ [RFC PATCH v2 4/13]
+   * add release_firmware_map_entry() for freeing firmware_map_entry
+
+ [RFC PATCH v2 6/13]
+  * add release_memory_block() for freeing memory_block
+
+ [RFC PATCH v2 11/13]
+  * fix wrong arguments of free_pages()
 
 
-Changelogs from v2 to v3:
- Patch9: call sync_global_pgds() if pgd is changed
- Patch10: fix a problem int the patch
+Wen Congyang (5):
+  memory-hotplug: implement offline_memory()
+  memory-hotplug: store the node id in acpi_memory_device
+  memory-hotplug: export the function acpi_bus_remove()
+  memory-hotplug: call acpi_bus_remove() to remove memory device
+  memory-hotplug: introduce new function arch_remove_memory()
 
-Changelogs from v1 to v2:
- Patch1: new patch, offline memory twice. 1st iterate: offline every non primary
-         memory block. 2nd iterate: offline primary (i.e. first added) memory
-         block.
-
- Patch3: new patch, no logical change, just remove reduntant codes.
-
- Patch9: merge the patch from wujianguo into this patch. flush tlb on all cpu
-         after the pagetable is changed.
-
- Patch12: new patch, free node_data when a node is offlined
-
-Wen Congyang (6):
-  memory-hotplug: try to offline the memory twice to avoid dependence
-  memory-hotplug: remove redundant codes
-  memory-hotplug: introduce new function arch_remove_memory() for
-    removing page table depends on architecture
-  memory-hotplug: remove page table of x86_64 architecture
-  memory-hotplug: remove sysfs file of node
-  memory-hotplug: free node_data when a node is offlined
-
-Yasuaki Ishimatsu (6):
-  memory-hotplug: check whether all memory blocks are offlined or not
-    when removing memory
+Yasuaki Ishimatsu (14):
+  memory-hotplug: rename remove_memory() to
+    offline_memory()/offline_pages()
+  memory-hotplug: offline and remove memory when removing the memory
+    device
+  memory-hotplug: check whether memory is present or not
   memory-hotplug: remove /sys/firmware/memmap/X sysfs
-  memory-hotplug: unregister memory section on SPARSEMEM_VMEMMAP
+  memory-hotplug: does not release memory region in PAGES_PER_SECTION
+    chunks
+  memory-hotplug: add memory_block_release
+  memory-hotplug: remove_memory calls __remove_pages
+  memory-hotplug: check page type in get_page_bootmem
+  memory-hotplug: move register_page_bootmem_info_node and
+    put_page_bootmem for sparse-vmemmap
   memory-hotplug: implement register_page_bootmem_info_section of
     sparse-vmemmap
-  memory-hotplug: remove memmap of sparse-vmemmap
-  memory-hotplug: memory_hotplug: clear zone when removing the memory
+  memory-hotplug: free memmap of sparse-vmemmap
+  memory_hotplug: clear zone when the memory is removed
+  memory-hotplug: add node_device_release
+  memory-hotplug: remove sysfs file of node
 
- arch/ia64/mm/discontig.c             |  14 ++
- arch/ia64/mm/init.c                  |  18 ++
- arch/powerpc/mm/init_64.c            |  14 ++
- arch/powerpc/mm/mem.c                |  12 +
- arch/s390/mm/init.c                  |  12 +
- arch/s390/mm/vmem.c                  |  14 ++
- arch/sh/mm/init.c                    |  17 ++
- arch/sparc/mm/init_64.c              |  14 ++
- arch/tile/mm/init.c                  |   8 +
- arch/x86/include/asm/pgtable_types.h |   1 +
- arch/x86/mm/init_32.c                |  12 +
- arch/x86/mm/init_64.c                | 417 +++++++++++++++++++++++++++++++++++
- arch/x86/mm/pageattr.c               |  47 ++--
- drivers/acpi/acpi_memhotplug.c       |   8 +-
- drivers/base/memory.c                |   6 +
- drivers/firmware/memmap.c            |  98 +++++++-
- include/linux/firmware-map.h         |   6 +
- include/linux/memory_hotplug.h       |  15 +-
- include/linux/mm.h                   |   5 +-
- mm/memory_hotplug.c                  | 409 ++++++++++++++++++++++++++++++++--
- mm/sparse.c                          |   5 +-
- 21 files changed, 1095 insertions(+), 57 deletions(-)
-
--- 
-1.8.0
+ arch/ia64/mm/init.c                             |   16 +
+ arch/powerpc/mm/mem.c                           |   14 +
+ arch/powerpc/platforms/pseries/hotplug-memory.c |   16 +-
+ arch/s390/mm/init.c                             |    8 +
+ arch/sh/mm/init.c                               |   15 +
+ arch/tile/mm/init.c                             |    8 +
+ arch/x86/include/asm/pgtable_types.h            |    1 +
+ arch/x86/mm/init_32.c                           |   10 +
+ arch/x86/mm/init_64.c                           |  333 ++++++++++++++++++++++
+ arch/x86/mm/pageattr.c                          |   47 ++--
+ drivers/acpi/acpi_memhotplug.c                  |   51 +++-
+ drivers/acpi/scan.c                             |    3 +-
+ drivers/base/memory.c                           |   90 ++++++-
+ drivers/base/node.c                             |    8 +
+ drivers/firmware/memmap.c                       |   78 +++++-
+ include/acpi/acpi_bus.h                         |    1 +
+ include/linux/firmware-map.h                    |    6 +
+ include/linux/memory.h                          |    5 +
+ include/linux/memory_hotplug.h                  |   25 +-
+ include/linux/mm.h                              |    5 +-
+ include/linux/mmzone.h                          |   19 ++
+ mm/memory_hotplug.c                             |  337 +++++++++++++++++++++--
+ mm/sparse.c                                     |    5 +-
+ 23 files changed, 1010 insertions(+), 91 deletions(-)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help