Re: [PATCH 18/25] lpfc: Rework EQ/CQ processing to address interrupt coalescing

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

 



On 12/28/2018 1:53 AM, Hannes Reinecke wrote:
Have you considered making 'LPFC_EQ_DELAY_MSECS' configurable?
It looks to me as if it would introduce a completion latency; having it configurable would allow us to check and possibly modify this.

It could be configurable if desired.

It shouldn't introduce a latency, although it may leave a latency set longer than it perhaps should be. The define is the heartbeat polling interval. The heartbeat samples the statistics of the number of times entered per interval and adjust the interrupt delay accordingly.

There's an interesting interplay that goes on between the interrupt generation (EQ firing) and the CQ processing and rearming - which in most cases, especially when per-cpu affinity is happening as it should, results in almost no need to set anything other than no delay on the interrupt (it's always immediate). After an interrupt occurs, any delay timer is started, but although the interrupt handler completes, no further interrupt will be generated until the CQ processing completes and rearms the CQ. As things get higher under load, the CQ processing becomes longer and still doesn't generate a lot of actual interupts.

Where this logic was needed was for a case where the platform was ignoring the interrupt affinity hints, putting multiple vectors (which should have been on different cpus) on a single cpu. I have not seen this happen on upstream kernels, but the same source on an older distro kernel showed this. In this case, the interrupts (additive across the multiple vectors) had to be monitored and reduced so the cpu didn't spend all its time in the interrupt handlers.

-- james



[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