Re: [PATCH] qla2xxx: Resolved a performance issue in interrupt handler

Matthew Wilcox
2009-06-09T21:43:40Z

On Tue, Jun 09, 2009 at 02:40:44PM -0700, Anirban Chakraborty wrote:
> On Tue, 9 Jun 2009, James Bottomley wrote:
> > It depends what the root cause is ... if it's really latency introduced
> > by other interrupts, then IRQF_DISABLED might be the better course. If
> > it's purely interrupt problems in the spin locked critical sections,
> > then spin_lock_irq might be the better solution ... what would be useful
> > is to have the test rig at intel which turned up the problem see what
> > happens to the results for each case.
>
> I have attached the patch with IRQF_DISABLED. In my setup, I didn't find any
> significant difference in performance numbers between IRQF_DISABLED and
> spin_lock_irqsave. It would be interesting to see the numbers from Douglas's
> rig.
> Doug, could you please run it once more with this patch and let us know the
> numbers vs. the one you already tested with spin_lock_irqsave earlier.
> Thanks much,
> Anirban
>
> diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
> index c8d0a17..d07bd97 100644
> --- a/drivers/scsi/qla2xxx/qla_isr.c
> +++ b/drivers/scsi/qla2xxx/qla_isr.c
> @@ -1991,7 +1991,7 @@ skip_msix:
> skip_msi:
>
> ret = request_irq(ha->pdev->irq, ha->isp_ops->intr_handler,
> - IRQF_SHARED, QLA2XXX_DRIVER_NAME, rsp);
> + IRQF_DISABLED, QLA2XXX_DRIVER_NAME, rsp);
> if (ret) {
> qla_printk(KERN_WARNING, ha,
> "Failed to reserve interrupt %d already in use.\n",

While I don't think Doug has MSI-X adapters, a complete patch would change
all request_irq() calls to use IRQF_DISABLED, right?

--
Matthew Wilcox Intel Open Source Technology Centre
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."