On 12.04.2010, at 17:09, Avi Kivity wrote: > On 04/12/2010 05:55 PM, Richard Henderson wrote: >> >>> You could reduce the overhead somewhat by using kvm for memory >>> translation on hosts that support it. Of course tcg translation and >>> syscall costs will grow by the exit overhead. >> >> I've thought about this a bit, and what seemed to be the stickler is >> what is the environment that runs in the guest? TCG generated code >> is of course fine, but what about the helper functions? How can we >> tell whether a given helper function can run in the restricted environment >> of the guest or whether it needs to transition back to the environment of >> the host to do its work? > > I'd guess all helpers can run in guest context except those that cause a > transition to target kernel mode. > >> I suppose the obvious solution is some sort of flag on the function that >> well-maintained ports will set. But the whole marshalling thing is still >> pretty tricky. > > Pass everything through memory; will there be many transitions apart from > trapping instructions and missing translations?
I don't see how that would help with the 64-on-32 issue. You still don't get a 64 bit address space from running inside KVM. Alex