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

Anirban Chakraborty
2009-06-09T21:46:10Z

On Jun 9, 2009, at 2:43 PM, Matthew Wilcox wrote:

> 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?
>
> --

The above patch takes care of replacing all the IRQF_SHARED flags in
irq registrations with IRQF_DISABLED.
Thanks,
Anirban