On Tue 02-04-19 10:28:15, Oscar Salvador wrote: > On Mon, Apr 01, 2019 at 01:53:06PM +0200, Michal Hocko wrote: > > On Mon 01-04-19 09:59:36, Oscar Salvador wrote: > > > On Fri, Mar 29, 2019 at 02:42:43PM +0100, Michal Hocko wrote: > > > > Having a larger contiguous area is definitely nice to have but you also > > > > have to consider the other side of the thing. If we have a movable > > > > memblock with unmovable memory then we are breaking the movable > > > > property. So there should be some flexibility for caller to tell whether > > > > to allocate on per device or per memblock. Or we need something to move > > > > memmaps during the hotremove. > > > > > > By movable memblock you mean a memblock whose pages can be migrated over when > > > this memblock is offlined, right? > > > > I am mostly thinking about movable_node kernel parameter which makes > > newly hotpluged memory go into ZONE_MOVABLE and people do use that to > > make sure such a memory can be later hotremoved. > > Uhm, I might be missing your point, but hot-added memory that makes use of > vmemmap pages can be hot-removed as any other memory. > > Vmemmap pages do not account as unmovable memory, they just stick around > until all sections they referred to have been removed, and then, we proceed > with removing them. > So, to put it in another way: vmemmap pages are left in the system until the > whole memory device (DIMM, virt mem-device or whatever) is completely > hot-removed. 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? -- Michal Hocko SUSE Labs