linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
To: <linux-mm@kvack.org>, <linux-kernel@vger.kernel.org>,
	<linuxppc-dev@lists.ozlabs.org>, <linux-acpi@vger.kernel.org>
Cc: len.brown@intel.com, paulus@samba.org, minchan.kim@gmail.com,
	kosaki.motohiro@jp.fujitsu.com, rientjes@google.com,
	cl@linux.com, akpm@linux-foundation.org, liuj97@gmail.com
Subject: [RFC PATCH v2 0/13] memory-hotplug : hot-remove physical memory
Date: Tue, 3 Jul 2012 14:48:51 +0900	[thread overview]
Message-ID: <4FF287C3.4030901@jp.fujitsu.com> (raw)

This patch series aims to support physical memory hot-remove.

  [RFC PATCH v2 1/13] memory-hotplug : rename remove_memory to offline_memory
  [RFC PATCH v2 2/13] memory-hotplug : add physical memory hotplug code to acpi_memory_device_remove
  [RFC PATCH v2 3/13] memory-hotplug : unify argument of firmware_map_add_early/hotplug
  [RFC PATCH v2 4/13] memory-hotplug : remove /sys/firmware/memmap/X sysfs
  [RFC PATCH v2 5/13] memory-hotplug : does not release memory region in PAGES_PER_SECTION chunks
  [RFC PATCH v2 6/13] memory-hotplug : add memory_block_release
  [RFC PATCH v2 7/13] memory-hotplug : remove_memory calls __remove_pages
  [RFC PATCH v2 8/13] memory-hotplug : check page type in get_page_bootmem
  [RFC PATCH v2 9/13] memory-hotplug : move register_page_bootmem_info_node and put_page_bootmem for
sparse-vmemmap
  [RFC PATCH v2 10/13] memory-hotplug : implement register_page_bootmem_info_section of sparse-vmemmap
  [RFC PATCH v2 11/13] memory-hotplug : free memmap of sparse-vmemmap
  [RFC PATCH v2 12/13] memory-hotplug : add node_device_release
  [RFC PATCH v2 13/13] memory-hotplug : remove sysfs file of node

Even if you apply these patches, you cannot remove the physical memory
completely since these patches are still under development. I want you to
cooperate to improve the physical memory hot-remove. So please review these
patches and give your comment/idea.

The patches can free/remove following things:

  - acpi_memory_info                          : [RFC PATCH 2/13]
  - /sys/firmware/memmap/X/{end, start, type} : [RFC PATCH 4/13]
  - iomem_resource                            : [RFC PATCH 5/13]
  - mem_section and related sysfs files       : [RFC PATCH 6-11/13]
  - node and related sysfs files              : [RFC PATCH 12-13/13]

The patches cannot do following things yet:

  - page table of removed memory

If you find lack of function for physical memory hot-remove, please let me
know.

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()

---
 arch/powerpc/platforms/pseries/hotplug-memory.c |   16 +-
 arch/x86/mm/init_64.c                           |  144 ++++++++++++++++++++++++
 drivers/acpi/acpi_memhotplug.c                  |   28 ++++
 drivers/base/memory.c                           |   53 ++++++++
 drivers/base/node.c                             |    7 +
 drivers/firmware/memmap.c                       |   70 +++++++++++
 include/linux/firmware-map.h                    |    6 +
 include/linux/memory.h                          |    5
 include/linux/memory_hotplug.h                  |   17 --
 include/linux/mm.h                              |    5
 mm/memory_hotplug.c                             |   98 ++++++++++++----
 mm/sparse.c                                     |    5
 12 files changed, 406 insertions(+), 48 deletions(-)

             reply	other threads:[~2012-07-03  5:49 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-03  5:48 Yasuaki Ishimatsu [this message]
2012-07-03  5:52 ` [RFC PATCH v2 1/13] memory-hotplug : rename remove_memory to offline_memory Yasuaki Ishimatsu
2012-07-03  5:54 ` [RFC PATCH v2 2/13] memory-hotplug : add physical memory hotplug code to acpi_memory_device_remove Yasuaki Ishimatsu
2012-07-03  6:21   ` Wen Congyang
2012-07-03  7:40     ` Yasuaki Ishimatsu
2012-07-03  7:49       ` Wen Congyang
2012-07-03  5:55 ` [RFC PATCH v2 3/13] unify argument of firmware_map_add_early/hotplug Yasuaki Ishimatsu
2012-07-03  5:56 ` [RFC PATCH v2 4/13] memory-hotplug : remove /sys/firmware/memmap/X sysfs Yasuaki Ishimatsu
2012-07-03  6:35   ` Wen Congyang
2012-07-04  4:45     ` Yasuaki Ishimatsu
2012-07-04  5:08       ` Wen Congyang
2012-07-04  5:52         ` Yasuaki Ishimatsu
2012-07-04 10:01           ` Wen Congyang
2012-07-06  8:27             ` Yasuaki Ishimatsu
2012-07-06  9:20               ` Wen Congyang
2012-07-09  8:18                 ` Yasuaki Ishimatsu
2012-07-03  5:58 ` [RFC PATCH v2 5/13] memory-hotplug : does not release memory region in PAGES_PER_SECTION chunks Yasuaki Ishimatsu
2012-07-03  5:59 ` [RFC PATCH v2 6/13] memory-hotplug : add memory_block_release Yasuaki Ishimatsu
2012-07-03  6:00 ` [RFC PATCH v2 7/13] memory-hotplug : remove_memory calls __remove_pages Yasuaki Ishimatsu
2012-07-03  6:01 ` [RFC PATCH v2 8/13] memory-hotplug : check page type in get_page_bootmem Yasuaki Ishimatsu
2012-07-03  6:02 ` [RFC PATCH v2 9/13] memory-hotplug : move register_page_bootmem_info_node and put_page_bootmem for sparse-vmemmap Yasuaki Ishimatsu
2012-07-03  6:03 ` [RFC PATCH v2 10/13] memory-hotplug : implement register_page_bootmem_info_section of sparse-vmemmap Yasuaki Ishimatsu
2012-07-03  6:04 ` [RFC PATCH v2 11/13] memory-hotplug : free memmap " Yasuaki Ishimatsu
2012-07-03  6:05 ` [RFC PATCH v2 12/13] memory-hotplug : add node_device_release Yasuaki Ishimatsu
2012-07-03  6:06 ` [RFC PATCH v2 13/13] memory-hotplug : remove sysfs file of node Yasuaki Ishimatsu

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=4FF287C3.4030901@jp.fujitsu.com \
    --to=isimatu.yasuaki@jp.fujitsu.com \
    --cc=akpm@linux-foundation.org \
    --cc=cl@linux.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=liuj97@gmail.com \
    --cc=minchan.kim@gmail.com \
    --cc=paulus@samba.org \
    --cc=rientjes@google.com \
    /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).