Re: re-writing on powerpc

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

 



On Mon, 13 Dec 2010 10:45:30 +0200
Avi Kivity <avi@xxxxxxxxxx> wrote:

> On 12/13/2010 10:42 AM, Alexander Graf wrote:
> > Yeah, let me rephrase my exact memory on this:
> >
> > If the HV just rewrites instructions in the guest, it behaves different from real hw which is bad. It could potentially break checksumming inside the guest.
> >
> > If, however, the guest sends a hypercall to the HV saying "please patch me" or there's a flag on creation time to enable patching, I have a hard time finding a reason to do it inside the guest context.
> >
> > Back when I implemented this, we did however have discussions on exactly that distinction between patching in host or guest space and for some reason I remember that you and Hollis figured that guest patching is superior. I just really can't remember why and couldn't find traces of this in my inbox either :).
> 
> The interface is a lot simpler.  The guest decides what to patch and 
> where to jump.  A "please patch me" flag needs a ton of documentation on 
> what patch means and what the constraints on the guest environment are.
> 

The constraints need to be documented, but I think "a ton" is a bit of
an exaggeration -- and having the guest do the patching itself means
that the structure of the shared page must become stable ABI.  Having
the hypervisor do the bulk of the work also makes it easier to add
paravirt to new OSes (in the embedded world, often the reason someone
wants to do virtualization is to run some custom OS alongside Linux).

OTOH, having the guest do it makes it easier to do more complex
rewriting such as mtmsr[1].  And the fact that we've already got an
implementation makes for a compelling tie-breaker.

-Scott

[1] Speaking of which, what happens when an interrupt is raised in the
middle of a paravirt critical section?  KVM will hold off the
interrupt delivery if it sees the critical flag set, but when will it
deliver the postponed interrupt?  Seems like it will wait until the next
time an exit happens for some other reason.

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