Re: [PATCH v3] drm/i915/execlists: Move WA_TAIL_DWORDS to callee

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

 



On 05/02/16 22:56, Rodrigo Vivi wrote:
On Fri, Feb 5, 2016 at 11:31 AM, Dave Gordon <david.s.gordon@xxxxxxxxx> wrote:
From: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>

Currently emit-request starts writing to the ring and reserves space
for a workaround to be emitted later whilst submitting the request. It
is easier to read if the caller only allocates sufficient space for
its access (then the reader can quickly verify that the ring begin
allocates the exact space for the number of dwords emitted) and closes
the access to the ring. During submit, if we need to add the workaround,
we can reacquire ring access, in the assurance that we reserved space
for ourselves when beginning the request.

v3:
     Reinstated #define for WA_TAIL_DWORDS so we could accommodate GPUs
     that required different amounts of padding, generalised NOOP fill
     [Rodrigo Vivi], added W/A space to reserved amount and updated
     code comments [Dave Gordon],

Originally-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Rewritten-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Further-tweaked-by: Dave Gordon <david.s.gordon@xxxxxxxxx>

Signed-off-by: Dave Gordon <david.s.gordon@xxxxxxxxx>
Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Cc: Dave Gordon <david.s.gordon@xxxxxxxxx>
Cc: Ben Widawsky <benjamin.widawsky@xxxxxxxxx>
---
  drivers/gpu/drm/i915/intel_lrc.c | 80 ++++++++++++++++++++++++----------------
  1 file changed, 49 insertions(+), 31 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 3a03646..8b278f1 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -225,6 +225,13 @@ enum {
  #define GEN8_CTX_ID_SHIFT 32
  #define CTX_RCS_INDIRECT_CTX_OFFSET_DEFAULT  0x17

+/*
+ * Reserve space for 2 NOOPs at the end of each request,
+ * to be used as a workaround for not being allowed to
+ * do lite restore with HEAD==TAIL (WaIdleLiteRestore).
+ */
+#define WA_TAIL_DWORDS 2

This patch really organize things better, but I still don't like the
WA_TAIL_DWORDS hardcoded here instead in a place where I can switch
for different platofms.

1. it's a *workaround* for a hardware limitation. Let's hope it's not even necessary on future chips!

2. it's a really small overhead, so why not just define it as the max over all supported platforms?

3. it's a macro, that means it's not *hardcoded*; if there's ever a platform where we actually need this fix and it's not the same number, we can just redefine this as a function call. Would you prefer it to be a function-type macro:

#define	WA_TAIL_DWORDS(dev) (2) /* doesn't currently depend on dev */

so that it could more easily be converted to a platform-specific value in future?

.Dave.

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux