Re: [PATCH v3 09/13] KVM: PPC: e500: enable magic page

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 15 Jun 2011 13:34:06 +0200
Alexander Graf <agraf@xxxxxxx> wrote:

> 
> On 15.06.2011, at 12:50, Alexander Graf wrote:
> > What are your results when using the magic page? I have the following numbers with your patches applied:
> > 
> > == bare metal ==
> > 
> > root@e500:~/kvm# time for i in {1..1000}; do /bin/echo > /dev/null; done
> > 
> > real	0m5.445s
> > user	0m0.204s
> > sys	0m0.572s
> > 
> > 
> > == no hypervisor node (magic page not used) ==
> > 
> > debian-powerpc:~# time for i in {1..1000}; do /bin/echo > /dev/null; done
> > 
> > real	1m36.362s
> > user	0m13.224s
> > sys	1m11.084s
> > 
> > 
> > == with hypervisor node (magic page used) ==
> > 
> > debian-powerpc:~# time for i in {1..1000}; do /bin/echo > /dev/null; done
> > 
> > real	2m28.888s
> > user	0m9.248s
> > sys	1m4.016s
> 
> Interesting - now I'm down to:
> 
> debian-powerpc:~# time for i in {1..1000}; do /bin/echo > /dev/null; done
> 
> real	1m25.008s
> user	0m9.224s
> sys	1m5.720s
> 
> 
> Oh well, let's hope I did something wrong before :).

Remember, I have more paravirt patches coming after this (wanted to get the
MMU stuff dealt with first), and the kernel is still using 4K TLB1 pages in
the default qemu config.  We should probably use TLB0 when large pages
aren't available.

Without paravirt, no large pages:

sh-2.05b# time for i in $(seq 1000); do /bin/echo > /dev/null ; done

real    0m42.769s
user    0m3.256s
sys     0m34.988s

With paravirt including my local patches (but still no large pages):

sh-2.05b# time for i in $(seq 1000); do /bin/echo > /dev/null ; done

real    0m40.339s
user    0m1.560s
sys     0m32.652s

With large pages and no paravirt:

sh-2.05b# time for i in $(seq 1000); do /bin/echo > /dev/null ;done

real    0m7.986s
user    0m2.528s
sys     0m3.232s

With large pages and paravirt, but just this patchset (no further paravirt
patches):

sh-2.05b# time for i in $(seq 1000); do /bin/echo > /dev/null ; done

real    0m6.067s
user    0m3.068s
sys     0m2.332s

With large pages and all my paravirt patches:

sh-2.05b# time for i in $(seq 1000); do /bin/echo  > /dev/null ;done

real    0m3.837s
user    0m0.604s
sys     0m0.316s

On the host (different rfs, but I think similar in relevant ways, except
that the host rfs has SPE and guest rfs is soft-float):

# time for i in $(seq 1000); do /bin/echo > /dev/null ; done

real    0m1.850s
user    0m0.028s
sys     0m0.236s

I used seq because my rfs is using an older bash that doesn't seem to
understand the range expression.

-Scott

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM Development]     [KVM ARM]     [KVM ia64]     [Linux Virtualization]     [Linux USB Devel]     [Linux Video]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux