On Thu 12-07-18 10:52:08, Wei Wang wrote: > On 07/12/2018 10:30 AM, Linus Torvalds wrote: > > On Wed, Jul 11, 2018 at 7:17 PM Wei Wang <wei.w.wang@xxxxxxxxx> wrote: > > > Would it be better to remove __GFP_THISNODE? We actually want to get all > > > the guest free pages (from all the nodes). > > Maybe. Or maybe it would be better to have the memory balloon logic be > > per-node? Maybe you don't want to remove too much memory from one > > node? I think it's one of those "play with it" things. > > > > I don't think that's the big issue, actually. I think the real issue > > is how to react quickly and gracefully to "oops, I'm trying to give > > memory away, but now the guest wants it back" while you're in the > > middle of trying to create that 2TB list of pages. > > OK. virtio-balloon has already registered an oom notifier > (virtballoon_oom_notify). I plan to add some control there. If oom happens, > - stop the page allocation; > - immediately give back the allocated pages to mm. Please don't. Oom notifier is an absolutely hideous interface which should go away sooner or later (I would much rather like the former) so do not build a new logic on top of it. I would appreciate if you actually remove the notifier much more. You can give memory back from the standard shrinker interface. If we are reaching low reclaim priorities then we are struggling to reclaim memory and then you can start returning pages back. -- Michal Hocko SUSE Labs