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

Re: [Xen-devel] Xen4.2 S3 regression?



>>> On 04.09.12 at 20:34, Ben Guthro <ben@xxxxxxxxxx> wrote:
> On Fri, Aug 24, 2012 at 6:16 PM, Jan Beulich <JBeulich@xxxxxxxx> wrote:
>>>>> On 24.08.12 at 17:10, Ben Guthro <ben@xxxxxxxxxx> wrote:
>>> The attached patch is essentially the change you suggested, plus a
>>> check for NULL in irq_complete_move()
>>>
>>> This patch seems to fix some of the issues I was seeing, but not all.
>>> MSI's are now delivered, after a handful of suspend / resumes, which
>>> is the issue I was setting out to solve here.
>>
>> But I'm afraid this is just masking some other problem (see my
>> response to Andrew's mail that I just sent).
>>
>> Further more, the NULL check here seems pretty odd - I'd be very
>> curious what code path could get us there with the IRQ regs
>> pointer being NULL. It would likely be that code path that needs
>> fixing, not irq_complete_move(). Could you add a call to
>> dump_execution_state() to the early return path that you added?
> 
> Apologies that I'm just getting back to this.
> 
> The call trace in this early return patch looks like this:
> 
> (XEN) Xen call trace:
> (XEN)    [<ffff82c480167d1a>] irq_complete_move+0x3e/0xd9
> (XEN)    [<ffff82c48014424a>] dma_msi_mask+0x1d/0x49
> (XEN)    [<ffff82c480169cc2>] fixup_irqs+0x19c/0x300
> (XEN)    [<ffff82c48017e762>] __cpu_disable+0x337/0x37e
> (XEN)    [<ffff82c4801013e3>] take_cpu_down+0x43/0x4a
> (XEN)    [<ffff82c480125fe6>] stopmachine_action+0x8a/0xb3
> (XEN)    [<ffff82c48012756e>] do_tasklet_work+0x8d/0xc7
> (XEN)    [<ffff82c4801278d9>] do_tasklet+0x6b/0x9b
> (XEN)    [<ffff82c480158cbd>] idle_loop+0x67/0x71
> 
> 
> This seems to get printed 4 times - twice on CPU1, and CPU2

This one appears to be relatively clear, and I'll add a tentative
fix to the next version of debugging patch that I'm in the
process of preparing: irq_complete_move() is supposed to be
getting called from the hw_irq_controllers' .ack methods, yet
VT-d currently uses the same handler for .ack and .disable
(and calling irq_complete_move() in the context of .disable
is certainly wrong) - this appears to have been the case
forever, but a flaw like this may of course get uncovered with
completely unrelated changes.

Jan

(also restored the Cc list)


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.