RE: kvm BookE and SPRGs

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

 



On Fri, 2009-07-10 at 19:17 +1000, Benjamin Herrenschmidt wrote:
> On Fri, 2009-07-10 at 17:15 +0800, Liu Yu-B13201 wrote:
> > Sounds reasonable.
> > 
> > There are some old patchset which implemented the binary patch as Ben
> > described.
> > 
> > http://marc.info/?l=kvm-ppc&m=122154653905212&w=2
> > http://marc.info/?l=kvm-ppc&m=122154657905306&w=2
> > 
> 
> Interesting. Any reason why that wasn't merged ?

Ok, I had a look and it seems like he's rewriting the guest instructions
from the hypervisor.

I prefer having the guest rewrite it's own instructions. That does mean
that the layout inside the magic page has to be fixed to a certain
extent (or we need the hypervisor to at least pass some kind of
description of where the various fields are) but that's a much better
approach I believe.

The main reason is because of the user-readable SPRG4..7. Because the
guest will -not- trap when reading them, it will be able to read the
value from the real underlying registers. However, when the writes to
them are replaced by writing to the magic page, the underlying register
is not kept in sync and things will break.

Thus I prefer having the guest itself replace those instructions with
magic page accesses in both case (stores and loads), it becomes the
guest responsibility to ensure it's properly using the magic page -only-
and doesn't trap on the actual instructions.

We would thus continue trapping on the normal instructions and emulate
them the old way (though we can probably move that emulation to asm
code that is run before the switch back to the linux mm via the magic
page :-) and thus make the emulation much faster, but that's a different
deal.

But still, the bulk of the patches for adding the cleaner paravirt
interfaces, the magic page etc... seems sane.

Cheers,
Ben.


--
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