[PATCH 10/13] kvm/powerpc: Add support for Book3S processors in hypervisor mode
Jimi Xenidis
jimix at pobox.com
Wed Jun 1 06:26:09 EST 2011
On May 27, 2011, at 9:07 PM, Segher Boessenkool wrote:
>>>> If HDEC expires when interrupts are off, the HDEC interrupt stays
>>>> pending until interrupts get re-enabled. I'm not sure exactly what
>>>> the conditions are that cause an HDEC interrupt to get lost, but they
>>>> seem to involve at least a partition switch.
>>>
>>> On some CPUs, if the top bit of the decrementer is 0 again when you re-enable
>>> the interrupt, the interrupt is lost (so it is actually level-triggered).
>>> The arch books talk a bit about this AFAIR.
>>
>> Sure, but that shouldn't happen with HDEC during the odd 50 instructions that it takes to enter the guest :)
>
> It's more like 500 insns, including some ptesync, so lots of cycles too.
I don't think its actually that bad.
IIRC the problem is mostly due to another interrupt of a higher priority that sets MSR[HV] is pending.
This could also be a synchronous instruction on or near the HSRR0 (like a hypercall).
Since almost everything _is_ of a higher priority, externals, VRMA-ish, emulation, that will occur first (or at the same time).
This extends the window where the HDEC could go +ve.
Another way around this is to check, on HV switch, if the HDEC is ever bigger then it should _ever_ be, but what paulus has in his code is actually best, although the value (10?) may be too small.
> Can another hardware thread be running at the same time?
I'll leave this question to someone else.
-JX
>
>
> Segher
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
More information about the Linuxppc-dev
mailing list