[RFC PATCH V2 00/10] x86/Hyper-V: Add Dynamic memory hot-remove function

From: lantianyu1986
Date: Tue Jan 07 2020 - 08:10:04 EST


From: Tianyu Lan <Tianyu.Lan@xxxxxxxxxxxxx>

Hyper-V provides dynamic memory hot add/remove function.
Memory hot-add has already enabled in Hyper-V balloon driver.
Now add memory hot-remove function.

This patchset is based on the David Hildenbrand's "virtio-mem:
paravirtualized memory" RFC V4 version and use new interface
offline_and_remove_memory().
https://lkml.org/lkml/2019/12/12/681

Change since V1:
- Split patch into small patch for review.
- Convert ha_lock from spin lock to mutex.
- Add a common work to handle all mem hot plug and
balloon msg
- Use offline_and_remove_memory() to offline and remove
memory.

Tianyu Lan (10):
mm/resource: Move child to new resource when release mem region.
mm: expose is_mem_section_removable() symbol
x86/Hyper-V/Balloon: Replace hot-add and balloon up works with a
common work
x86/Hyper-V/Balloon: Convert spin lock ha_lock to mutex
x86/Hyper-V/Balloon: Avoid releasing ha_lock when traverse
ha_region_list
x86/Hyper-V/Balloon: Enable mem hot-remove capability
x86/Hyper-V/Balloon: Handle mem hot-remove request
x86/Hyper-V/Balloon: Handle request with non-aligned page number
x86/Hyper-V/Balloon: Hot add mem in the gaps of hot add region
x86/Hyper-V: Workaround Hyper-V unballoon msg bug

drivers/hv/hv_balloon.c | 754 ++++++++++++++++++++++++++++++++++++++++--------
kernel/resource.c | 38 ++-
mm/memory_hotplug.c | 1 +
3 files changed, 673 insertions(+), 120 deletions(-)

--
2.14.5