[Intel-gfx] [PATCH 13/13] drm/i915: Cache last IRQ seqno to reduce IRQ overhead

John Harrison John.C.Harrison at Intel.com
Fri Dec 11 07:35:54 PST 2015

On 11/12/2015 14:55, Chris Wilson wrote:
> On Fri, Dec 11, 2015 at 01:12:01PM +0000, John.C.Harrison at Intel.com wrote:
>> From: John Harrison <John.C.Harrison at Intel.com>
>> The notify function can be called many times without the seqno
>> changing. A large number of duplicates are to prevent races due to the
>> requirement of not enabling interrupts until requested. However, when
>> interrupts are enabled the IRQ handle can be called multiple times
>> without the ring's seqno value changing. This patch reduces the
>> overhead of these extra calls by caching the last processed seqno
>> value and early exiting if it has not changed.
> This is just plain wrong. Every user-interrupt is preceded by a seqno
> update.
Except that mutiple interrupts can be coalesced if they occur too close 
together. The driver's IRQ handler still gets called for each individual 
interrupt but the first time it is run it sees the seqno for the last. 
Thus all the processing gets done on the first invocation. The multiple 
subsequent invocations (I have seen up to four I believe) then have 
nothing to do.

> -Chris

More information about the Intel-gfx mailing list