Re: [RFC0/1] megaraid_sas : IRQ polling using threaded interrupt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Hi,

I refer below thread for interrupt polling related discussion for
storage devices (NVME/HBA).

  http://lists.infradead.org/pipermail/linux-nvme/2017-January/007749.html

  I am trying to evaluate the similar concept to reduce interrupts
using irq-poll and threaded ISR. Below is high level changes I did in
my experiment.

You want to reduce interrupts because you want to fix a bug where
your driver never exit from hard-irq? or trying to optimize the
efficiency of the system?

In megaraid_sas driver, I schedule irq poll using “irq_poll_sched” and
disable that particular IRQ line. I was expecting more completion
after I disable irq line, but in most of the cases  just one
completion happened from irq poll context. It must be due to host side
processing is much faster than IO processing at back end device.
Similar observation was posted in above mentioned thread as well.

Is your device able to coalesce interrupts?

I added manual wait using “udelay()” and wait for some more time in irq
poll context. Using additional wait, I am able to reduce interrupt per
seconds and performance impact on latency is not visible since I
choose udelay(1). One drawback I see is overall CPU utilization goes
up since driver is using extra delay to reduce interrupts.

  To overcome CPU utilization issue, I switch to threaded ISR and
replace udelay() with usleep().  Using threaded interrupt based
polling CPU utilization goes to normal.

Doesn't sound like the right approach to me, but I don't understand
what you are trying to achieve.



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux