On Fri, Aug 4, 2017 at 6:12 AM, Michel Dänzer <michel@xxxxxxxxxxx> wrote: > On 03/08/17 10:54 PM, Daniel Vetter wrote: >> On Thu, Aug 3, 2017 at 1:17 AM, Daniel Vetter <daniel.vetter@xxxxxxxx> wrote: >>> On Wed, Aug 2, 2017 at 10:50 PM, Alex Deucher <alexdeucher@xxxxxxxxx> wrote: >>>> On Wed, Aug 2, 2017 at 7:56 AM, Daniel Vetter <daniel.vetter@xxxxxxxx> wrote: >>>>> The only thing modern drivers are supposed to do in lastclose is >>>>> restore the fb emulation state. Which is entirely optional, and >>>>> there's really no reason to do that. So restrict it to legacy drivers >>>>> (where the driver cleanup essentially happens in lastclose). >>>> >>>> vga_switcheroo_process_delayed_switch() gets called in lastclose. >>>> Won't that need to get moved elsewhere for this to work? >>> >>> Hm right, I forgot the lazy way to do runtime pm by keeping the device >>> alive as long as anyone has an open fd for it ... This shouldn't be a >>> problem, since you need to unregister from vgaswitcheroo anyway on >>> unload. Maybe that blows up, I'll check the code and augment the patch >>> as needed. >> >> So I think there's 3 cases: >> - Trying to unload the module. You can't do that while anyone has the >> fd still open, so lastclose is guaranteeed to run. >> - Forcefully unbinding the driver through sysfs. Not any better, since >> the can_switch stuff checks for the open count, and so will delay the >> delayed switch no matter what. > > Are you sure that this is working as intended? > https://bugs.freedesktop.org/show_bug.cgi?id=100399 sounds like > unbinding works even while Xorg is using the DRM device. Unbinding the gpu while someone has a file open (like X) is very much possible, it's how it's designed. That's the forced unplug case. But: a) amdgpu doesn't implement actual hotremoval support and blows up b) even in the unload path we still check for can_switch, which will notice that there's still open fds and not do the delayed switch, so the code I've removed is already dead in that case. But yeah, unbinding while X is running is very much possible, it's exactly what will happen if you hotremove the gpu (from the driver model pov) physically. The only thing I tried to show is that my patch doesn't make anything worse :-) -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel