On Tue 26-11-19 14:04:06, Qian Cai wrote: > > > > On Nov 26, 2019, at 10:41 AM, Michal Hocko <mhocko@xxxxxxxxxx> wrote: > > > > On Tue 26-11-19 10:30:56, Qian Cai wrote: > >> > >> > >>> On Nov 25, 2019, at 3:39 AM, Michal Hocko <mhocko@xxxxxxxxxx> wrote: > >>> > >>> People do care about ZONE_MOVABLE and if there is a non-movable memory > >>> sitting there then it is a bug. Please report that. > >> > >> It is trivial to test yourself if you ever care. Just pass kernelcore= > >> to as many NUMA machines you could find, an then test if ever possible > >> to offline those memory. > > > > I definitely do care if you can provide more details (ideally in a > > separate email thread). I am using movable memory for memory hotplug > > usecases and so far I do not remember any kernel/non-movable allocations > > would make it in - modulo bugs when somebody might use __GFP_MOVABLE > > when it is not appropriate. > > > > I don’t think it is anything to do with __GFP_MOVABLE. It is about booting a kernel > with either passing kernelcore= or movablecore=. Then, those ZONE_MOVABLE will > have non-movable pages which looks like those from vmemmap_populate(). OK, I see. This looks like a bug in kernelcore/movablecore. And honestly I wouldn't be surprised because these are hacks that should have been removed. I have even attempted to do that because their main usecase is mostly gone. There were some objections though... > How do you create ZONE_MOVALBLE in this first place? The most common usecase I work with is to use movable_node parameter which makes whole nodes marked as hotplugable to be moved to ZONE_MOVABLE. -- Michal Hocko SUSE Labs