Re: [PATCH] VMware Balloon driver

From: Dmitry Torokhov
Date: Mon Apr 05 2010 - 19:28:41 EST


On Mon, Apr 05, 2010 at 04:11:10PM -0700, Andrew Morton wrote:
> On Mon, 5 Apr 2010 16:03:48 -0700 (PDT)
> Dan Magenheimer <dan.magenheimer@xxxxxxxxxx> wrote:
>
> > > > On 04/06/2010 01:17 AM, Andrew Morton wrote:
> > > > >> The basic idea of the driver is to allow a guest system to give up
> > > > >> memory it isn't using so it can be reused by other virtual
> > > machines (or
> > > > >> the host itself).
> > > > >>
> > > > > So... does this differ in any fundamental way from what
> > > hibernation
> > > > > does, via shrink_all_memory()?
> > > > >
> > > >
> > > > Just the _all_ bit, and the fact that we need to report the freed
> > > page
> > > > numbers to the hypervisor.
> > > >
> > >
> > > So... why not tweak that, rather than implementing some parallel
> > > thing?
> >
> > I think Avi was being facetious ("_all_"). Hibernation assumes
> > everything in the machine is going to stop for awhile. Ballooning
> > assumes that the machine has lower memory need for awhile, but
> > is otherwise fully operational.
>
> shrink_all_memory() doesn't require that processes be stopped.
>
> If the existing code doesn't exactly match virtualisation's
> requirements, it can be changed.
>
> > Think of it as hot-plug memory
> > at a page granularity.
>
> hotplug is different because it targets particular physical pages. For
> this requirement any old page will do. Preferably one which won't be
> needed soon, yes?

The best page would not old page but unused page.

We do rely on the standard mechanisms to find pages that can be freed to
inflate balloon, but once pages are allocated they are not available
till released. In case of shrinkig memory it can be allocated and used
as soon as we wake up (it shrink was done in course of hibernation
sequence).

--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/