drm/i915: Micro-optimise hotpath through intel_ring_begin()
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 4 May 2017 13:08:46 +0000 (14:08 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 4 May 2017 14:40:38 +0000 (15:40 +0100)
commit5e5655c32de83a0151de0c4993d7783c22b6f9b4
tree3436e783ba56065ce254fc3ac3c4de9582fab0be
parent95aebcb2da73079f9ecb7f4e353af71ff1f04c05
drm/i915: Micro-optimise hotpath through intel_ring_begin()

Typically, there is space available within the ring and if not we have
to wait (by definition a slow path). Rearrange the code to reduce the
number of branches and stack size for the hotpath, accomodating a slight
growth for the wait.

v2: Fix the new assert that packets are not larger than the actual ring.
v3: Make the parameters unsigned as well to make usage.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170504130846.4807-3-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_ringbuffer.c
drivers/gpu/drm/i915/intel_ringbuffer.h