From: "Michael S. Tsirkin" <mst@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: Alexander Duyck <alexander.duyck@gmail.com>,
wei.w.wang@intel.com, Nitesh Narayan Lal <nitesh@redhat.com>,
kvm list <kvm@vger.kernel.org>,
Dave Hansen <dave.hansen@intel.com>,
LKML <linux-kernel@vger.kernel.org>,
linux-mm <linux-mm@kvack.org>,
Andrew Morton <akpm@linux-foundation.org>,
Yang Zhang <yang.zhang.wz@gmail.com>,
pagupta@redhat.com, Rik van Riel <riel@surriel.com>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
lcapitulino@redhat.com, Andrea Arcangeli <aarcange@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
dan.j.williams@intel.com,
Alexander Duyck <alexander.h.duyck@linux.intel.com>
Subject: Re: use of shrinker in virtio balloon free page hinting
Date: Wed, 17 Jul 2019 10:34:15 -0400 [thread overview]
Message-ID: <20190717103208-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <959237f9-22cc-1e57-e07d-b8dc3ddf9ed6@redhat.com>
On Wed, Jul 17, 2019 at 04:10:47PM +0200, David Hildenbrand wrote:
> On 17.07.19 13:20, Michael S. Tsirkin wrote:
> > Wei, others,
> >
> > ATM virtio_balloon_shrinker_scan will only get registered
> > when deflate on oom feature bit is set.
> >
> > Not sure whether that's intentional. Assuming it is:
> >
> > virtio_balloon_shrinker_scan will try to locate and free
> > pages that are processed by host.
> > The above seems broken in several ways:
> > - count ignores the free page list completely
> > - if free pages are being reported, pages freed
> > by shrinker will just get re-allocated again
>
> Trying to answer your questions (not sure if I fully understood what you
> mean)
>
> virtio_balloon_shrinker_scan() will not be called due to inflation
> requests (balloon_page_alloc()). It will be called whenever the system
> is OOM, e.g., when starting a new application.
>
> I assume you were expecting the shrinker getting called due to
> balloon_page_alloc(). however, that is not the case as we pass
> "__GFP_NORETRY".
Right but it's possible we exhaust all memory, then
someone else asks for a single page and that invokes
the shrinker.
>
> To test, something like:
>
> 1. Start a VM with
>
> -device virtio-balloon-pci,deflate-on-oom=true
>
> 2. Inflate the balloon, e.g.,
>
> QMP: balloon 1024
> QMP: info balloon
> -> 1024
>
> See how "MemTotal" in /proc/meminfo in the guest won't change
>
> 3. Run a workload that exhausts memory in the guest (OOM).
>
> See how the balloon was automatically deflated
>
> QMP: info balloon
> -> Something bigger than 1024
>
>
> Not sure if it is broken, last time I played with it, it worked, but
> that was ~1-2 years ago.
>
> --
>
> Thanks,
>
> David / dhildenb
Sorry I was unclear. The question was about
VIRTIO_BALLOON_F_FREE_PAGE_HINT specifically.
--
MST
next prev parent reply other threads:[~2019-07-17 14:34 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-17 11:20 use of shrinker in virtio balloon free page hinting Michael S. Tsirkin
2019-07-17 11:32 ` David Hildenbrand
2019-07-17 14:10 ` David Hildenbrand
2019-07-17 14:34 ` Michael S. Tsirkin [this message]
2019-07-17 14:38 ` David Hildenbrand
2019-07-17 15:46 ` Wang, Wei W
2019-07-18 4:13 ` Michael S. Tsirkin
2019-07-18 5:57 ` Wei Wang
2019-07-18 5:58 ` Michael S. Tsirkin
2019-07-18 6:30 ` Wei Wang
2019-07-18 6:47 ` Michael S. Tsirkin
2019-07-18 9:08 ` Wei Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190717103208-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=alexander.duyck@gmail.com \
--cc=alexander.h.duyck@linux.intel.com \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@intel.com \
--cc=david@redhat.com \
--cc=konrad.wilk@oracle.com \
--cc=kvm@vger.kernel.org \
--cc=lcapitulino@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nitesh@redhat.com \
--cc=pagupta@redhat.com \
--cc=pbonzini@redhat.com \
--cc=riel@surriel.com \
--cc=wei.w.wang@intel.com \
--cc=yang.zhang.wz@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.