At 15:18 +0000 on 05 Jan (1294240690), Joe Epstein wrote:
>> What if the guest already has a trap pending for some reason? This
>> could turn it into a double-fault, which is probably not what the caller
>> wanted.
>
> Hmm...it doesn't seem like there can be two different injected events,
> as this will overwrite whatever else was set. If the guest was trying
> to service a trap and took a VM exit, then injection should be the
> same as if it happened natively. So I think I'm missing something
> here.
>
> Also, because the injection only takes effect on the next entry, the
> odds are good that the caller knows the VCPU was paused, and might
> have a better sense of the state. The hypercall is most useful on a
> memory event handler registered for INT3, having to inject the INT3 to
> whatever debugger is running in the guest that needs to handle it.
Yes, I can see why it's useful - just as long as the caller knows that
there's a risk (in some circumstances) that the injected trap will
collide with another one and cause a double fault. In the INT3 case,
the caller can be sure that it's the only injection going on, but that's
not always the case (e.g. if the guest trapped on a write to its stack
during a pagefault).
Cheers,
Tim.
--
Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Principal Software Engineer, Xen Platform Team
Citrix Systems UK Ltd. (Company #02937203, SL9 0BG)
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|