[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [Help] Trigger Watchdog when adding an IPI in vcpu_wake
On Sat, 2016-09-24 at 11:39 +0800, Wei Yang wrote: > On Thu, Sep 22, 2016 at 11:12:15AM +0200, Dario Faggioli wrote: > > _Almost_ correct. However, the problem is more that vcpu_wake() can > > happen in response to an IRQ, and when you grab a spinlock in IRQ > > context, you need to disable IRQs. > > > > Ok, now I have a question to this sentence. > > I have checked some posts which says in the interrupt handling, irq > would be > disabled. Well, this really depends on the implementation. > > This means in Xen, irq is still enabled during interrupt handling? > Because of > this, we have to disable IRQ when we need to grab the spin lock? > So, I don't think I'm getting all you're saying and asking. The situation is like this: currently, vcpu_wake() can be called both from inside or outside IRQ context, and both with IRQs enabled or disabled. Given this situation, to be safe, we need to disable IRQs when taking whatever spinlock vcpu_wake() (and the functions it calls, of course) calls. Since it takes the scheduler's runq lock, this means we need to take the lock with IRQ disabled. And because of that, _everyone_ that takes the schedulr's lock must do that with IRQs disabled. If we manage to *not* take the scheduler's lock with IRQ disabled in vcpu_wake(), we then can do the same everywhere else. But we can't do that with the current structure of the code, and that's why we're thinking to defer the actual wakeup --i.e., the actual call to vcpu_wake()-- to a moment when: - IRQs are enabled, - we don't need to disable them. This is it. About the following... > Looks I almost get every thing. Let me do a summary to see whether I > have got > your words. > > (spinlock usage convention in Xen) & (vcpu_wake() may happen in > an IRQ) > This is ok. > => > > (irq all disabled || irq all enabled) & (disable irq on grabbing > spinlock) > This, I don't get it. > => > > should grab schedule lock with IRQ disabled > Yes, sounds right. Dario -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) Attachment:
signature.asc _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |