Re: [PATCH 2/2] KVM: PPC: Book3S: Call into C interrupt handlers

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

 



On 27.04.2012, at 01:37, Benjamin Herrenschmidt wrote:

> On Fri, 2012-04-27 at 01:30 +0200, Alexander Graf wrote:
>> On 27.04.2012, at 01:12, Benjamin Herrenschmidt wrote:
>> 
>>> On Fri, 2012-04-27 at 00:24 +0200, Alexander Graf wrote:
>>>> 
>>>> This is to actually enable interrupts for real, regardless of ppc64
>>>> and ppc32. In fact, the previous code was pretty buggy - it was
>>>> running the handlers with interrupts disabled ;). 
>>> 
>>> They should be run with interrupts disabled.. tho both soft & hard.
>> 
>> The kvm_resched()? No, that one should be run with interrupts enabled - hard and soft :).
> 
> Ok, when you said "the handler" I thought you mean do_IRQ & co... those
> must be run with IRQs off (and never enabled since taking the actual
> exception).

Ah, yeah, "the handler" in this context meant the kvm intercept handlers. Those were running with irq hard disabled. Pretty bad, eh? :)

> 
>>> You probably do want to call local_irq_disable() unconditionally anyway,
>>> because on ppc32, that will give you the proper accounting vs. lockdep.
>> 
>> We already do __hard_irq_disable (which maps to local_irq_disable on ppc32)
>> when entering the guest context and when leaving the intercept handler :).
>> So that should be fine, no?
> 
> Well, __hard_irq_disable() isn't defined on ppc32 in hw_irq.h so if you
> redefine it locally that's really gross :-) Also that means that from a
> lockdep perspective you are running the entire guest with IRQs off ?
> that doesn't sound right...

Yup. We're running the entire guest with IRQs off. Do you have any better idea how to make sure that we're atomic wrt signal delivery?


Alex

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux