On Thu, 2007-06-07 at 17:10 +0800, Shaohua Li wrote:
> On Wed, 2007-06-06 at 09:18 +0800, Shaohua Li wrote:
> > On Tue, 2007-06-05 at 22:17 +0800, Avi Kivity wrote:
> > > Shaohua Li wrote:
> > > > Hi,
> > > > This is a updated patch set of swap out kvm guest pages.Changes are:
> > > > 1. refresh against to kvm-26
> > > > 2. clean up shadow page handling to make gfn_to_page not be called
> > > > within kmap_atomic/kunamp_atomic.
> > > > 3. variant bug fixing. Now the patch is quite stable in my test.
> > > > 4. make swap out optional. A compile option can completely close
> > > swap
> > > > out. There should be no performance impact if swapout isn't enabled.
> > > >
> > > > There are still a lot of unresolved issues:
> > > > 1. just work for one vm. waiting for kvm hook into scheduler
> > > > 2. Not work for mp guest and can't swap out pages which shadow page
> > > > table point to, this require kvm .flush_tlb can send ipi to vcpu.
> > > > 3. swapoff isn't supported. We need a hook to sys_swapoff for kvm.
> > > >
> > > > Please review, suggests and comments are welcome.
> > > >
> > > >  
> > > 
> > > The patch rmaps read-only guest pages.  While this is of course
> > > required, it will make unshadowing ptes pointing to shared library
> > > pages
> > > very expensive.  If we have a guest with 200 processes, all mapping
> > > glibc, then an exit() will have to walk a linear list of size 200 per
> > > shadowed pte.
> > I'm doing performance test currently, will update you soon.
> > > Do you know how the Linux rmap implementation handles this?
> > In Linux, you can get the address_space from the page, then get all vmas
> > of the address_space, then walking the page tables of all the vmas.It's
> > also a linear list walking, I think.
> I had some basic test results. The test is under a 1G memory host and
> runs a 256M memory guest. There are nearly no swap. the benchmark is to
> measure the time compile kernel source. With swap enabled, the
> performance degrades about 9%. rmap read-only guest page hasn't any
> performance impact. The degradation is caused by 'find_get_page', it
> takes a lot of time, looks like it didn't handle big file well, but I
> need time to do further check.
I did a small optimization to bypass find_get_page if the page is
already in page cache. With it, the swap patch set hasn't any
performance degradation in the test environment above.

Thanks,
Shaohua

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to