<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Skylake GPU HANG while gstreamer H264 vaapi encoding from MJPEG vaapi decode on drm-tip"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=110394#c39">Comment # 39</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Skylake GPU HANG while gstreamer H264 vaapi encoding from MJPEG vaapi decode on drm-tip"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=110394">bug 110394</a>
              from <span class="vcard"><a class="email" href="mailto:andy.nicholas@shield.ai" title="Andy Nicholas <andy.nicholas@shield.ai>"> <span class="fn">Andy Nicholas</span></a>
</span></b>
        <pre>(In reply to Chris Wilson from <a href="show_bug.cgi?id=110394#c25">comment #25</a>)
<span class="quote">> You can try something silly like

> diff --git a/drivers/gpu/drm/i915/intel_lrc.c
> b/drivers/gpu/drm/i915/intel_lrc.c
> index 4e0a351bfbca..e5feb0f5a5fe 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -2115,10 +2115,16 @@ static int gen9_emit_bb_start(struct i915_request
> *rq,
>  {
>         u32 *cs;
>  
> -       cs = intel_ring_begin(rq, 6);
> +       cs = intel_ring_begin(rq, 12);
>         if (IS_ERR(cs))
>                 return PTR_ERR(cs);
>  
> +       *cs++ = MI_LOAD_REGISTER_IMM(1);
> +       *cs++ = i915_mmio_reg_offset(GEN6_RC_CONTROL);
> +       *cs++ = GEN6_RC_CTL_HW_ENABLE |
> +               GEN6_RC_CTL_RC6_ENABLE |
> +               GEN6_RC_CTL_EI_MODE(1);
> +
>         *cs++ = MI_ARB_ON_OFF | MI_ARB_ENABLE;
>  
>         *cs++ = MI_BATCH_BUFFER_START_GEN8 |
> @@ -2129,6 +2135,10 @@ static int gen9_emit_bb_start(struct i915_request *rq,
>         *cs++ = MI_ARB_ON_OFF | MI_ARB_DISABLE;
>         *cs++ = MI_NOOP;
>  
> +       *cs++ = MI_LOAD_REGISTER_IMM(1);
> +       *cs++ = i915_mmio_reg_offset(GEN6_RC_CONTROL);
> +       *cs++ = 0;
> +
>         intel_ring_advance(rq, cs);
>  
>         return 0;

> to see if it is just an rc6 event on idling that is the culprit, while
> keeping rc6 active for the encoder.</span >

gen9_emit_bb_start() does not exist in my drm-tip sources from 4 weeks ago
(March 22). There is a gen8_emit_bb_start(), but no "gen9" or anything which
seems similar.

andy@kbuild:/build/kernel/drm-tip/drm-tip/drivers/gpu/drm/i915$ git log
commit 00cb3798a5d008c3f824fe7c89c663dba66155c3 (HEAD -> drm-tip,
origin/drm-tip, origin/HEAD)
Author: Rodrigo Vivi <<a href="mailto:rodrigo.vivi@intel.com">rodrigo.vivi@intel.com</a>>
Date:   Fri Mar 22 12:52:43 2019 -0700

    drm-tip: 2019y-03m-22d-19h-51m-23s UTC integration manifest</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>