On Tue, 2018-03-13 at 17:42 +0800, Ming Lei wrote: > From 84676c1f21 (genirq/affinity: assign vectors to all possible CPUs), > one msix vector can be created without any online CPU mapped, then > command may be queued, and won't be notified after its completion. > > This patch setups mapping between cpu and reply queue according to irq > affinity info retrived by pci_irq_get_affinity(), and uses this info > to choose reply queue for queuing one command. > > Then the chosen reply queue has to be active, and fixes IO hang caused > by using inactive reply queue which doesn't have any online CPU mapped. > > Cc: Hannes Reinecke <[email protected]> > Cc: "Martin K. Petersen" <[email protected]>, > Cc: James Bottomley <[email protected]>, > Cc: Christoph Hellwig <[email protected]>, > Cc: Don Brace <[email protected]> > Cc: Kashyap Desai <[email protected]> > Cc: Laurence Oberman <[email protected]> > Cc: Mike Snitzer <[email protected]> > Cc: Meelis Roos <[email protected]> > Cc: Artem Bityutskiy <[email protected]> > Fixes: 84676c1f21e8 ("genirq/affinity: assign vectors to all possible CPUs") > Signed-off-by: Ming Lei <[email protected]>
Checked v5 my Skylake Xeon and with this patch the regression that I reported is fixed. Tested-by: Artem Bityutskiy <[email protected]> Link: https://lkml.kernel.org/r/[email protected]

