<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [SKL bisected] System freeze when starting X using kernel 4.9-rc1 or later"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=98690#c15">Comment # 15</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [SKL bisected] System freeze when starting X using kernel 4.9-rc1 or later"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=98690">bug 98690</a>
              from <span class="vcard"><a class="email" href="mailto:peter.ujfalusi@gmail.com" title="Peter Ujfalusi <peter.ujfalusi@gmail.com>"> <span class="fn">Peter Ujfalusi</span></a>
</span></b>
        <pre>Paul,

(In reply to Paul Donohue from <a href="show_bug.cgi?id=98690#c13">comment #13</a>)
<span class="quote">> Just to confirm and expand on statements above:

> My Dell 7510 laptop does have optimus.

> The kernel loads both the i915 and nouveau kernel modules automatically. 
> Blacklisting the nouveau kernel module, booting with 339fd362 applied, then
> starting X works fine.  Booting with 339fd362 reverted and starting X with
> both the i915 and nouveau kernel modules loaded works fine.  Booting with
> 339fd362 applied and starting X with both the i915 and nouveau kernel
> modules loaded hangs.

> Explicitly configuring xorg.conf to load only the "intel" xorg driver and
> not attempt to load the "nouveou" xorg driver does not help.

> Same behavior can be replicated in kernel 4.10-rc2.</span >

Can you please give a try to the attached patch? It will delay the handling of
initial delayed events by 1s instead immediate handling (with 339fd362) or with
the 10s delay (w/o 339fd362).

In nouveau_display.c:nouveau_display_create() we have:
...
        drm_kms_helper_poll_init(dev);
        drm_kms_helper_poll_disable(dev);
...

so it is possible that nouveau does not want to have the polling enabled just
yet, but it need to call poll_init() to have the poll infra ready. So it calls
poll_init() followed by the poll_disable(). But with 339fd362 the work to
handle the poll might be scheduled before it got chance to disable it.

Without Optimus based laptop it is hard to say what is going on.</pre>
        </div>
      </p>


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

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