Linus Torvalds
2018-Jul-12 02:30 UTC
[PATCH v35 1/5] mm: support to get hints of free page blocks
On Wed, Jul 11, 2018 at 7:17 PM Wei Wang <wei.w.wang at intel.com> 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. IOW, I think the real work is in whatever tuning for the righ tbehavior. But I'm just guessing. Linus
Wei Wang
2018-Jul-12 02:52 UTC
[PATCH v35 1/5] mm: support to get hints of free page blocks
On 07/12/2018 10:30 AM, Linus Torvalds wrote:> On Wed, Jul 11, 2018 at 7:17 PM Wei Wang <wei.w.wang at intel.com> 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. Best, Wei
Michal Hocko
2018-Jul-12 08:13 UTC
[PATCH v35 1/5] mm: support to get hints of free page blocks
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 at intel.com> 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
Reasonably Related Threads
- [PATCH v35 1/5] mm: support to get hints of free page blocks
- [PATCH v35 1/5] mm: support to get hints of free page blocks
- [PATCH v35 1/5] mm: support to get hints of free page blocks
- [PATCH v35 1/5] mm: support to get hints of free page blocks
- [PATCH v35 1/5] mm: support to get hints of free page blocks