2006-09-01 11:08:49

by Martin Schwidefsky

[permalink] [raw]
Subject: [patch 0/9] Guest page hinting: cover sheet.

On Fri, 2006-08-25 at 11:52 -0700, Andrew Morton wrote:
> The obvious question is: "can Xen/vmware/whatever use this too?". The
> preliminary answer I get back is "might well be the case". Hopefully we'll
> hear more back soon.
>
> So a good way to get some monentum into this work is to copy
> [email protected] and lkml, try to get it some more users.

Hi folks,
Andrew thinks that it might be a good idea to broaden the audience for
the guest page hinting patches. So here we go ..

The background for the patches is running a large number of guests on
a paging hypervisor with a high memory over-commitment ratio. We have
that situation on the mainframe running hundreds of Linux guests system
on z/VM. For hypervisors with a small number of guests the usual answer
to the memory over-commitment problem is a memory balloon in the guest
whose size is controlled by the host. For are large number of guests
the overhead to call into the guests increases, what is needed is an
alternative way for the hypervisor to get to memory without the
invokation of the guest system.

The original cover-sheet as posted on linux-mm:

> Fourth version of the guest page hinting patches. The code has been
> polished and another race has been fixed (keep fingers crossed that
> is has been that last one this time).
>
> The basic idea of guest page hinting is to give a host system which
> virtualizes the memory of its guest systems on a per page basis
> usage information for the guest pages. The host can then use this
> information to optimize the management of guest pages, in particular
> the paging. This optimizations can be used for unused (free) guest
> pages, for clean page cache pages, and for clean swap cache pages.
> The content of free pages can be replace with zeroes and the content
> of clean page cache / swap cache pages can be reloaded by the guest
> from the backing store.
>
> There are 9 patches that implement guest page hinting:
>
> 1) Guest page state changes for free pages.
> 2) s390 exploitation of state changes for free pages.
> 3) Guest page state changes for page cache pages.
> 4) Guest page state changes for swap cache pages.
> 5) Keep mlocked pages in stable state.
> 6) Add support for writable page table entries.
> 7) Optimization for minor faults.
> 8) Discarded page list.
> 9) full s390 architecture support for guest page hinting.
>
> The first two patches are independent from the other seven. These
> two just deal with unused/free vs. used/stable pages. The code
> starts to get interesting with patch #03..
>
> Any objections against pushing patch #01 and patch #02 into the
> -mm tree?
>
> The code runs well on s390 and does nothing for all other archs.
> Patches are against 2.6.18-rc4-mm2.

Only difference of this patch-set compare to the one posted on linux-mm
is that this patch-set is against 2.6.18-rc5-mm1. To go back to Andrews
question: is this useful for anybody else in addition to s390?

--
blue skies,
Martin.

Martin Schwidefsky
Linux for zSeries Development & Services
IBM Deutschland Entwicklung GmbH

"Reality continues to ruin my life." - Calvin.


2006-09-13 17:51:34

by Zachary Amsden

[permalink] [raw]
Subject: Re: [patch 0/9] Guest page hinting: cover sheet.

Martin Schwidefsky wrote:
> Only difference of this patch-set compare to the one posted on linux-mm
> is that this patch-set is against 2.6.18-rc5-mm1. To go back to Andrews
> question: is this useful for anybody else in addition to s390

Yes, it is useful for VMware as well. I am looking through the patches
now, and it looks as if they are useful without any changes needed.

Zach

2006-09-14 08:36:27

by Martin Schwidefsky

[permalink] [raw]
Subject: Re: [patch 0/9] Guest page hinting: cover sheet.

On Wed, 2006-09-13 at 10:51 -0700, Zachary Amsden wrote:
> > Only difference of this patch-set compare to the one posted on linux-mm
> > is that this patch-set is against 2.6.18-rc5-mm1. To go back to Andrews
> > question: is this useful for anybody else in addition to s390
>
> Yes, it is useful for VMware as well. I am looking through the patches
> now, and it looks as if they are useful without any changes needed.

That is good news. The current list of changes we are considering is
1) provide batched state transitions for state changes to unused on page
free, from unused to stable on page allocation and to volatile for
page/swap cache pages. Details are still under discussion but I think it
is doable.
2) Get rid of the PG_state_change page flags bit. Use a hashed lock on
the page index instead
3) Get rid of page_host_discards() by defining PageDiscarded() and
friends conditional on CONFIG_PAGE_STATES.

If you can think of anything else that would help wiht the VMware
implementation let me know.

--
blue skies,
Martin.

Martin Schwidefsky
Linux for zSeries Development & Services
IBM Deutschland Entwicklung GmbH

"Reality continues to ruin my life." - Calvin.