[Intel-gfx] [PATCH v2 3/3] drm/i915: move gen8 irq shifts to intel_lrc.c

Chris Wilson chris at chris-wilson.co.uk
Fri Mar 9 00:31:07 UTC 2018


Quoting Daniele Ceraolo Spurio (2018-03-08 23:46:29)
> The only usage outside the intel_lrc.c file is in the ringbuffer
> init, but the irq mask calculated there is then overwritten for
> all engines that have a non-zero shift, so we can drop it.
> 
> This change is not aimed at code saving but at removing from
> intel_engines information that does not apply to all gens that have
> the engine. When checking without the temporary WARN_ON, code size
> is basically unchanged:
> 
> add/remove: 1/0 grow/shrink: 3/4 up/down: 70/-67 (3)
> Function                                     old     new   delta
> logical_ring_setup                           315     343     +28
> irq_shifts                                     -      28     +28
> intel_init_render_ring_buffer                258     268     +10
> reset_common_ring                            704     708      +4
> intel_engine_init_cmd_parser                1064    1058      -6
> intel_engines_init_mmio                     1264    1256      -8
> intel_ring_default_vfuncs                    584     563     -21
> intel_engines                                224     192     -32
> Total: Before=1479719, After=1479722, chg +0.00%
> 
> Suggested-by: Michel Thierry <michel.thierry at intel.com>
> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>

With the missing static const,
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>

I had a look at restoring the use of engine->irq_shift in the irq
handlers, and while that does shrink the code abit, rearranging the code
brought even more savings. So I don't see a need to keep
engine->irq_shift around, and we can always bring it back but unlikely
if future gen do not need it.
-Chris


More information about the Intel-gfx mailing list