Re: [patch] x64: Avoid irq_chip mask/unmask in fixup_irqs for interrupt-remapping

Gary Hade
2009-06-05T22:20:26Z

On Thu, Jun 04, 2009 at 06:18:14PM -0700, Suresh Siddha wrote:
> On Thu, 2009-06-04 at 16:13 -0700, Eric W. Biederman wrote:
> > Suresh Siddha <suresh.b.siddha@intel.com> writes:
> >
> > > From: Suresh Siddha <suresh.b.siddha@intel.com>
> > > Subject: x64: Avoid irq_chip mask/unmask in fixup_irqs for interrupt-remapping
> > >
> > > In the presence of interrupt-remapping, irqs will be migrated in the
> > > process context and we don't do (and there is no need to) irq_chip mask/unmask
> > > while migrating the interrupt.
> > >
> > > Similarly fix the fixup_irqs() that get called during cpu offline and avoid
> > > calling irq_chip mask/unmask for irqs that are ok to be migrated in the
> > > process context.
> > >
> > > While we didn't observe any race condition with the existing code,
> > > this change takes complete advantage of interrupt-remapping in
> > > the newer generation platforms and avoids any potential HW lockup's
> > > (that often worry Eric :)
> >
> > You now apparently fail to migrate the irq threads in tandem with
> > the rest of the irqs.
>
> Eric, Are you referring to Gary's issues? As far as I understand, they
> don't happen in the presence of interrupt-remapping.

Suresh,
We do not currently have the h/w on which to test this assertion
but it seems like there is a good chance that at least the race that
http://lkml.org/lkml/2009/6/2/377
fixes could reproduce there.

The other problem that is repaired by
http://lkml.org/lkml/2009/6/2/378
depends on the i/o redirection table write with remote IRR bit
set lockup anomaly that the interrupt-remapping code may avoid
or perhaps is not even present with that h/w. My proposed fix
for the problem is based on previous interrupt-remapping code
that you recently removed with
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=0280f7c416c652a2fd95d166f52b199ae61122c0
If I correctly understand your justification for the change
it sounds like the interrupt-remapping code now "avoids" the problem.

Thanks,
Gary

--
Gary Hade
System x Enablement
IBM Linux Technology Center
503-578-4503 IBM T/L: 775-4503
garyhade@us.ibm.com