Messages in this thread Patch in this message | | | Subject | Re: [patch 0/4] XEN: Interrupt cleanups | From | Ian Campbell <> | Date | Tue, 8 Feb 2011 14:03:31 +0000 |
| |
On Mon, 2011-02-07 at 13:57 -0800, Jeremy Fitzhardinge wrote: > On 02/07/2011 01:33 PM, Thomas Gleixner wrote: > > Ok. The irq_chip conversion is mostly mechanical, but I'm really > > concerned about that IRQ_SUSPENDED hackery. It'd be nice if you > > resp. Ian could give that a test ride. That would allow me to cleanup > > stuff in the core code. > > Ian notes: "tglx's 4 patch interrupt cleanup series on LKML causes some > oddities on PV migration. Will dig further tomorrow..." > > So it looks like there's still something amiss.
The patches missed an indirect use of IRQF_NO_SUSPEND pulled in via IRQF_TIMER. The following fixed things for me (probably belongs in your patch 4/4).
With this fixlet PV guest migration works just fine. I also booted the entire series as a dom0 kernel and it appeared fine.
I also tested alongside the cleanup patches Jeremy mentioned before and as expected there is no interaction.
So, with the fixes to 2/4 (irq_move_irq think from yesterday) and 4/4 (below), the entire series is: Acked-by: Ian Campbell <ian.campbell@citrix.com>
Ian.
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c index 067759e..2e2d370 100644 --- a/arch/x86/xen/time.c +++ b/arch/x86/xen/time.c @@ -397,7 +397,9 @@ void xen_setup_timer(int cpu) name = "<timer kasprintf failed>"; irq = bind_virq_to_irqhandler(VIRQ_TIMER, cpu, xen_timer_interrupt, - IRQF_DISABLED|IRQF_PERCPU|IRQF_NOBALANCING|IRQF_TIMER, + IRQF_DISABLED|IRQF_PERCPU| + IRQF_NOBALANCING|IRQF_TIMER| + IRQF_FORCE_RESUME, name, NULL); evt = &per_cpu(xen_clock_events, cpu);
| |