Re: [Intel-gfx] [PATCH 02/15] drm/i915: Don't emit mbox updates without semaphores

2013-12-17 Thread Chris Wilson
On Mon, Dec 16, 2013 at 08:50:38PM -0800, Ben Widawsky wrote:
 Aside from the fact that it leaves confusing dumps on error capture, it
 is entirely unnecessary, and potentially harmful in cases like BDW,
 where the instruction has changed.
 
 In reality (seemingly), this will have no behavioral impact.
 
 Signed-off-by: Ben Widawsky b...@bwidawsk.net

The reason why we currently do is because i915.semaphores can change at
runtime. So we emit the instructions whilst i915.semaphores=0 just in
case, it is enabled later. This restriction can be lifted with a little
more work in handling the missed semaphores, I think, or it may just
require a proof that everything is safe as is.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 02/15] drm/i915: Don't emit mbox updates without semaphores

2013-12-17 Thread Ben Widawsky
On Tue, Dec 17, 2013 at 07:24:41PM +, Chris Wilson wrote:
 On Mon, Dec 16, 2013 at 08:50:38PM -0800, Ben Widawsky wrote:
  Aside from the fact that it leaves confusing dumps on error capture, it
  is entirely unnecessary, and potentially harmful in cases like BDW,
  where the instruction has changed.
  
  In reality (seemingly), this will have no behavioral impact.
  
  Signed-off-by: Ben Widawsky b...@bwidawsk.net
 
 The reason why we currently do is because i915.semaphores can change at
 runtime. So we emit the instructions whilst i915.semaphores=0 just in
 case, it is enabled later. This restriction can be lifted with a little
 more work in handling the missed semaphores, I think, or it may just
 require a proof that everything is safe as is.
 -Chris
 


It should still check the module parameter - I guess it would be nice to
guard changing the module parameter with struct_mutex (generally, not
just here), as that also breaks the emit path.

So in short, I think it's broken for two reasons.

My (and Daniel's) vote is to just make the module param static.

-- 
Ben Widawsky, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 02/15] drm/i915: Don't emit mbox updates without semaphores

2013-12-17 Thread Chris Wilson
On Tue, Dec 17, 2013 at 02:02:23PM -0800, Ben Widawsky wrote:
 On Tue, Dec 17, 2013 at 07:24:41PM +, Chris Wilson wrote:
  On Mon, Dec 16, 2013 at 08:50:38PM -0800, Ben Widawsky wrote:
   Aside from the fact that it leaves confusing dumps on error capture, it
   is entirely unnecessary, and potentially harmful in cases like BDW,
   where the instruction has changed.
   
   In reality (seemingly), this will have no behavioral impact.
   
   Signed-off-by: Ben Widawsky b...@bwidawsk.net
  
  The reason why we currently do is because i915.semaphores can change at
  runtime. So we emit the instructions whilst i915.semaphores=0 just in
  case, it is enabled later. This restriction can be lifted with a little
  more work in handling the missed semaphores, I think, or it may just
  require a proof that everything is safe as is.
  -Chris
  
 
 
 It should still check the module parameter - I guess it would be nice to
 guard changing the module parameter with struct_mutex (generally, not
 just here), as that also breaks the emit path.
 
 So in short, I think it's broken for two reasons.
 
 My (and Daniel's) vote is to just make the module param static.

Dynamic i915.semaphores is something I can live happily without. If we
ever do need such a thing, it needs to be internal to the kernel.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 02/15] drm/i915: Don't emit mbox updates without semaphores

2013-12-16 Thread Ben Widawsky
Aside from the fact that it leaves confusing dumps on error capture, it
is entirely unnecessary, and potentially harmful in cases like BDW,
where the instruction has changed.

In reality (seemingly), this will have no behavioral impact.

Signed-off-by: Ben Widawsky b...@bwidawsk.net
---
 drivers/gpu/drm/i915/intel_ringbuffer.c | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c 
b/drivers/gpu/drm/i915/intel_ringbuffer.c
index e05a021..b106984 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -663,14 +663,15 @@ gen6_add_request(struct intel_ring_buffer *ring)
struct drm_device *dev = ring-dev;
struct drm_i915_private *dev_priv = dev-dev_private;
struct intel_ring_buffer *useless;
-   int i, ret;
+   int i, ret, num_dwords = 4;
 
-   ret = intel_ring_begin(ring, ((I915_NUM_RINGS-1) *
- MBOX_UPDATE_DWORDS) +
- 4);
+   if (i915_semaphore_is_enabled(dev))
+   num_dwords += ((I915_NUM_RINGS-1) * MBOX_UPDATE_DWORDS);
+#undef MBOX_UPDATE_DWORDS
+
+   ret = intel_ring_begin(ring, num_dwords);
if (ret)
return ret;
-#undef MBOX_UPDATE_DWORDS
 
for_each_ring(useless, dev_priv, i) {
u32 mbox_reg = ring-signal_mbox[i];
-- 
1.8.5.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx