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