Skip to content

acpi,memory-hotplug : implement framework for hot removing memory

Yasuaki Ishimatsu linux-acpi linux-mm lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest3 of 4 patches 24 repliesIn review

3 of 4 patches are in this archive. The cover letter announces 4.

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4acpi,memory-hotplug : add memory offline code to acpi_memory_device_remove()drivers/acpi/acpi_memhotplug.c+34 -1017 replies
2/4acpi,memory-hotplug : rename remove_memory() to offline_memory()drivers/acpi/acpi_memhotplug.c include/linux/memory_hotplug.h mm/memory_hotplug.c+5 -53 replies
4/4acpi,memory-hotplug : store the node id in acpi_memory_devicedrivers/acpi/acpi_memhotplug.c+5 -63 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/4] acpi,memory-hotplug : implement framework for hot removing memory

We are trying to implement a physical memory hot removing function as following thread.

https://lkml.org/lkml/2012/9/5/201

But there is not enough review to merge into linux kernel.

I think there are following blockades.
1. no physical memory hot removable system
2. huge patch-set

If you have a KVM system, we can get rid of 1st blockade. Because applying following patch, we can create memory hot removable system on KVM guest.

http://lists.gnu.org/archive/html/qemu-devel/2012-07/msg01389.html

2nd blockade is own problem. So we try to divide huge patch into a small patch in each function as follows:

- bug fix
- acpi framework
- kernel core

We had already sent bug fix patches.
https://lkml.org/lkml/2012/9/27/39
https://lkml.org/lkml/2012/10/2/83

The patch-set implements a framework for hot removing memory.

The memory device can be removed by 2 ways:
1. send eject request by SCI
2. echo 1 >/sys/bus/pci/devices/PNP0C80:XX/eject

In the 1st case, acpi_memory_disable_device() will be called. In the 2nd case, acpi_memory_device_remove() will be called. acpi_memory_device_remove() will also be called when we unbind the memory device from the driver acpi_memhotplug.

acpi_memory_disable_device() has already implemented a code which offlines memory and releases acpi_memory_info struct . But acpi_memory_device_remove() has not implemented it yet.

So the patch prepares the framework for hot removing memory and adds the framework intoacpi_memory_device_remove(). And it prepares remove_memory(). But the function does nothing because we cannot support memory hot remove.