Messages in this thread |  | | | Date | Wed, 15 Feb 2012 11:17:41 -0500 | | From | Konrad Rzeszutek Wilk <> | | Subject | Re: bisected: 'perf top' causing soft lockups under Xen |
| |
On Wed, Feb 15, 2012 at 10:25:44AM +0100, Peter Zijlstra wrote: > On Wed, 2012-02-15 at 00:57 -0800, Steven Noonan wrote: > > It seems to me that there are two options for fixing this, but I'm > > probably lacking the necessary context (or experience with Xen). Either: > > > > - The patch provided by Ben needs to have additional work to specially > > handle IRQ_WORK_VECTOR, since it seems to be a special case where > > there's no event channel attached for it. Perhaps adding an event > > channel for this is the fix? Seems high-overhead, but I lack a good > > understanding of how interrupts are handled in Xen. > > So that's a self-IPI, is Xen failing to implement this?
It does have self-IPIs. > > > or > > > > - Perf needs to be "enlightened" about Xen and avoid sending an IPI in > > the first place. > > Uhm, no. If anything Xen should simply not implement > arch_irq_work_raise(). The callbacks are then ran from the timer > interrupt.
Looks like that wouldn't be too difficult - meaning implement a similar form of IRQ_WORKER that would call
inc_irq_stat(apic_irq_work_irqs); irq_work_run();
.. along with the rest of the stuff from Ben's patch. Let me see if I can prep a patch.
|  |