From: Anthony Liguori <anthony@codemonkey.ws>
To: Sukanto Ghosh <sukanto.cse.iitb@gmail.com>
Cc: kvm@vger.kernel.org
Subject: Re: Ballooning Queries
Date: Sat, 09 Aug 2008 13:31:05 -0500 [thread overview]
Message-ID: <489DE269.9000207@codemonkey.ws> (raw)
In-Reply-To: <a85e78f50808091105w5b0c32f2h371511b80289ca5b@mail.gmail.com>
Sukanto Ghosh wrote:
> I understand the idea behind ballooning as " it effectively increases
> or decreases the amount of physical memory given to the guest, with
> the help of the guest's native memory management algorithms". The
> benefit is obvious in cases where the hypervisor does a hard
> partitioning of the memory between the guests. The guest vm (virtual
> memory manager) will indirectly say that these are my least used
> pages, or the safest candidates for eviction.
>
> But in case of kvm, the guest memory is itself allocated and managed
> by the host linux vm. So, suppose if the guest evicts a lru page
> (which might even not actually reside in host physical memory at the
> time) and even the host chooses a lru page for eviction, the host
> decision is better in a sense that this page is definitely residing in
> the physical memory. So, are we gaining from using a balloon driver in
> the guest.
>
What ballooning is useful for in KVM, is reducing the amount of memory a
guest uses by a large amount. It's not terribly useful for shaving a
few dozen MBs from a guest, but it is useful for dropping a 1GB guest
down to 512GB.
Since the guest tells the host what portions of it's memory it won't be
using, we can evict it completely from memory (it's not even swapped,
it's just deleted).
> The only difference I see is that the balloon driver will always be
> giving us a page used by the guest. On the other hand, the linux vm
> will select a page from the entire physical memory, so it might
> penalise a host application page. But I don't see any benefit because
> of this. In fact for smaller no. of pages, most likely the guest will
> choose the pages which have already been swapped out by the host linux
> vm (the more recently used pages are the one which actually stay in
> the physical memory).
>
> Am I missing something ? I hope I have made the reason for my confusion clear.
>
>
> Also, I have read about some 'balloon userspace component' in kvm,
> what does it do ? Does it talk to the virtio balloon driver in the
> linux and keeps giving us some statistics for monitoring purposes ? Is
> there any other use ?
>
In general, paravirtual drivers in KVM are implemented in two parts. A
"front-end" that runs in the guest and a "back-end" that runs in the
host. For KVM, all of the current front-ends run in the guest kernel
and all of the back-ends run in the host userspace (QEMU).
> Where can I get the source for this balloon userspace component ? ( I
> read that Avi is going to merge it, but can I have a look at it now
> (any patch) ?
>
Check out the mailing list for the patches. You need MMU notifiers for
it to be effective though.
Regards,
Anthony Liguori
next prev parent reply other threads:[~2008-08-09 18:31 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-09 18:05 Ballooning Queries Sukanto Ghosh
2008-08-09 18:31 ` Anthony Liguori [this message]
2008-08-09 23:06 ` Sukanto Ghosh
2008-08-10 10:03 ` Dor Laor
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=489DE269.9000207@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=kvm@vger.kernel.org \
--cc=sukanto.cse.iitb@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox