On Tue, Apr 02, 2019 at 02:48:45PM +0200, Michal Hocko wrote: > So what is going to happen when you hotadd two memblocks. The first one > holds memmaps and then you want to hotremove (not just offline) it? If you hot-add two memblocks, this means that either: a) you hot-add a 256MB-memory-device (128MB per memblock) b) you hot-add two 128MB-memory-device Either way, hot-removing only works for memory-device as a whole, so there is no problem. Vmemmaps are created per hot-added operations, this means that vmemmaps will be created for the hot-added range. And since hot-add/hot-remove operations works with the same granularity, there is no problem. E.g: # (qemu) object_add memory-backend-ram,id=ram0,size=128M # (qemu) device_add pc-dimm,id=dimm0,memdev=ram0,node=1 # (qemu) object_add memory-backend-ram,id=ram1,size=512M # (qemu) device_add pc-dimm,id=dimm1,memdev=ram1,node=1 # (qemu) object_add memory-backend-ram,id=ram2,size=1G # (qemu) device_add pc-dimm,id=dimm2,memdev=ram2,node=1 These are three hot-add operations. Each hot-add operation will create use vmemmaps to hold the memmap for its hot-added sections. -- Oscar Salvador SUSE L3