[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.20.1801161223500.1823@nanos>
Date: Tue, 16 Jan 2018 12:25:19 +0100 (CET)
From: Thomas Gleixner <tglx@...utronix.de>
To: Ming Lei <ming.lei@...hat.com>
cc: Christoph Hellwig <hch@...radead.org>, Jens Axboe <axboe@...com>,
linux-block@...r.kernel.org, linux-kernel@...r.kernel.org,
Laurence Oberman <loberman@...hat.com>,
Mike Snitzer <snitzer@...hat.com>
Subject: Re: [PATCH 0/2] genirq/affinity: try to make sure online CPU is
assgined to irq vector
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
Powered by blists - more mailing lists