Re: [PATCH 0/2] genirq/affinity: try to make sure online CPU is assgined to irq vector

From: Thomas Gleixner
Date: Tue Jan 16 2018 - 06:25:29 EST


On Tue, 16 Jan 2018, Ming Lei wrote:

> On Mon, Jan 15, 2018 at 09:40:36AM -0800, Christoph Hellwig wrote:
> > On Tue, Jan 16, 2018 at 12:03:43AM +0800, Ming Lei wrote:
> > > Hi,
> > >
> > > These two patches fixes IO hang issue reported by Laurence.
> > >
> > > 84676c1f21 ("genirq/affinity: assign vectors to all possible CPUs")
> > > may cause one irq vector assigned to all offline CPUs, then this vector
> > > can't handle irq any more.
> >
> > Well, that very much was the intention of managed interrupts. Why
> > does the device raise an interrupt for a queue that has no online
> > cpu assigned to it?
>
> It is because of irq_create_affinity_masks().

That still does not answer the question. If the interrupt for a queue is
assigned to an offline CPU, then the queue should not be used and never
raise an interrupt. That's how managed interrupts have been designed.

Thanks,

tglx