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