On Mon, Jul 05, 2021 at 10:25:38AM +0100, John Garry wrote: > On 02/07/2021 16:05, Ming Lei wrote: > > blk-mq needs this information of using managed irq for improving > > deactivating hctx, so add such flag to 'struct Scsi_Host', then > > drivers can pass such flag to blk-mq via scsi_mq_setup_tags(). > > > > The rule is that driver has to tell blk-mq if managed irq is used. > > > > Signed-off-by: Ming Lei<ming.lei@xxxxxxxxxx> > > As was said before, can we have something like this instead of relying on > the LLDs to do the setting: > > --------->8------------ > > diff --git a/block/blk-mq-pci.c b/block/blk-mq-pci.c > index b595a94c4d16..2037a5b69fe1 100644 > --- a/block/blk-mq-pci.c > +++ b/block/blk-mq-pci.c > @@ -37,7 +37,7 @@ int blk_mq_pci_map_queues(struct blk_mq_queue_map *qmap, > struct pci_dev *pdev, > for_each_cpu(cpu, mask) > qmap->mq_map[cpu] = qmap->queue_offset + queue; > } > - > + qmap->drain_hwq = 1; The thing is that blk_mq_pci_map_queues() is allowed to be called for non-managed irqs. Also some managed irq consumers don't use blk_mq_pci_map_queues(). So this way just provides hint about managed irq uses, but we really need to get this flag set if driver uses managed irq. Thanks, Ming