mbox series

[00/10] ICL interrupt handling improvements

Message ID 20180920143350.29249-1-mika.kuoppala@linux.intel.com (mailing list archive)
Headers show
Series ICL interrupt handling improvements | expand

Message

Mika Kuoppala Sept. 20, 2018, 2:33 p.m. UTC
Hi,

This series brings gen11 interrupt handling closer to what
we have with previous gens. Namely the early releasing of
master intr to reduce interrupt latency.

Also cleanups in guc interrupts and identity selector
handling are included.

Code size shrinks a little:
add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-156 (-156)
Function                                     old     new   delta
gen11_irq_postinstall                        651     623     -28
gen11_irq_reset                             1711    1681     -30
gen11_irq_handler                            880     836     -44
gen11_gt_engine_identity                     224     170     -54
Total: Before=1281048, After=1280892, chg -0.01%

Interrupt handling latency is improved generally as measured with
gem_exec_nop, the odd one in the bunch being basic-sequential which
suffers almost 11%. The oddity is that the sequential, which is same
test with longer timeout, showing 2% improvement.

Testname         diff-%
------------------------
basic-series     -26.051
basic-parallel   -24.589
basic-sequent-a  10.729
default          -24.738
signal-default   -11.749
render           -22.221
signal-render    -13.250
bsd              -16.422
signal-bsd       -9.931
blt              -22.721
signal-blt       -5.241
vebox            -22.526
signal-all       -4.839
series           -2.249
parallel         -2.747
sequential       -2.137
forked-sequent-i -24.196
forked-sequent-a  2.789
chained-sequen-i -2.351
chained-sequen-a  3.262       
context-sequen-i -5.904
context-sequen-a  2.128
preempt-default  -3.972
preempt-render    0.503
preempt-bsd      -2.355
preempt-blt      -1.822
preempt-vebox    -2.757
poll-default      0.384
poll-render      -0.753
poll-bsd          0.552 
poll-blt         -0.532
poll-vebox       -0.867
poll-sequential   2.865

-Mika

Mika Kuoppala (10):
  drm/i915/icl: No need to ack intr through master control
  drm/i915/icl: Disable master intr early
  drm/i915/icl: No need to early bailout on interrupt
  drm/i915/icl: Add helper to enable/disable master irq
  drm/i915/icl: Trim down posting reads on master intr control
  drm/i915/icl: Streamline guc irq handling
  drm/i915/icl: Make own function for display irq handler
  drm/i915/icl: Handle GT interrupts after enabling master
  drm/i915/icl: Handle display interrupts after enabling master
  drm/i915/icl: Only ack irq identities we did handle

 drivers/gpu/drm/i915/i915_irq.c | 134 ++++++++++++++++----------------
 1 file changed, 69 insertions(+), 65 deletions(-)