[Intel-gfx] [Bug 104805] regression in 4.15 unable to reboot/poweroff, vgaswitcheroo doesn't work, RIP: 0010:i915_pci_probe+0x11/0x70 [i915]

Lukas Wunner lukas at wunner.de
Sun Jan 28 21:37:11 UTC 2018


On Sat, Jan 27, 2018 at 10:42:45AM +0000, bugzilla-daemon at freedesktop.org wrote:
> https://bugs.freedesktop.org/show_bug.cgi?id=104805
> 
> --- Comment #6 from Chris Wilson <chris at chris-wilson.co.uk> ---
> Sigh. Revert then solve the bloat another way. I think we can move it to a
> seperate module and only load it during pci_probe. (That module can then play
> some tricks to construct driver_info using private commands to allow feature
> enabling.)

The following might work:  Set i915_pci_driver->id_table = NULL.
Then in i915_init(), after calling pci_register_driver(), iterate
over pciidlist[] and call pci_add_dynid() for each entry.  Finally,
call pci_free_dynids().

The problem is that after manually unbinding the driver via sysfs,
you can't bind it again.

Also, as soon as Intel introduces a discrete GPU (e.g. in a dock,
hotplugged via Thunderbolt), the whole idea falls apart.

How many bytes are we talking about here anyway?  I imagine it's less
than a page.  Honestly I think it's not worth the effort.

I'm wondering why noone else is seeing this crash, myself included.
Is the driver somehow unbound and rebound on Chris Murphy's machine?

@Chris Murphy: You may have noticed an 8 second delay on reboot with
4.15.  Before you waste time bisecting it:  A fix is already queued
for 4.16 and marked for stable:
https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git/commit/?id=493fb50e958c

Have a pleasant fin de weekend.

Lukas


More information about the Intel-gfx mailing list