[Top][All Lists]

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

[Qemu-devel] Re: using mmap?

From: Anthony Liguori
Subject: [Qemu-devel] Re: using mmap?
Date: Fri, 15 Dec 2006 21:22:09 -0000
User-agent: Thunderbird (X11/20061115)

Mark Williamson wrote:
I'm also doubtful how much benefit it gave in practice. I'm sure it would
be good for synthetic CPU benchmarks. However using mmap significantly
increases the overhead of context switches/tlb misses.

To get good overall performance I suspect you're going to need closer
cooperation with the kernel than mmap gives you. If you really want to make
cross-emulation go fast I suggest working with the xen and/or kvm people to
integrate qemu dynamic translation into those products. In theory I'd guess
you should be able to plug it in as an alternative to the HVM code. I've no
idea how close that is to being practical.


The v2e stuff allows execution state to be extracted from the real CPU, plugged into QEmu for a bit for emulation, then transferred back to the real CPU again. This is initially to be used for supporting Big Real Mode emulation on HVM platforms. Later on it's planned to be used to accelerate IO emulation further.

Eventually this may provide a means to use QEmu's translator to execute kernel code whilst running user mode code under Xen. It may be that this isn't as fast as other approaches, but it'd be a useful feature for Xen to have IMO.

I'd absolute like to get there. The current Xen HVM code is a bit of a mess at the moment. There are far too many assumptions about having VT/SVM hardware present. However, I'd really like to get to a point where Xen could run unmodified guests on non VT/SVM hardware using qemu with user virtualization.

KVM is having similar trouble ATM with big real mode. It would be very nice to also add a V2E like interface to KVM.

I'd also like to see the translator even used for paravirtual guests. This way we could still have a proper boot loader run without having to deal with paravirtualizing it. It would be nice to use emulation to avoid paravirtualizing the non-performance critical bits.


Anthony Liguori


Wouldn't this be a *significant*
performance enhancement for this setup which I'm sure is a common one?
Maybe this can be implemented for regular processes on the guest and
only use the softmmu for the kernel?  Would someone point me in the
right direction for technical information?  I have had to switch to
vmware free player until Qemu+KQEMU reaches a point of similar
performance, but I would really rather see Qemu advance further.
If you're using an accelerator (eg. kqemu or kvm) this is all irelevant as
most code isn't run by qemu, it's virtualized by the accelerator. qemu just
does the IO emulation.


Qemu-devel mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]