[Nouveau] drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c: broken emergency poweroff handling
Hi! Not only it is unneccessarily complex, it is also broken; GFP_ATOMIC allocation can fail.. and then you fail to shut down the machine. Someone please fix this. Thanks, Pavel --- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c @@ -120,6 +120,11 @@ nvkm_therm_sensor_event(struct nvkm_therm *therm, enum nvkm_therm_thrs thrs, struct work_struct *work; work = kmalloc(sizeof(*work), GFP_ATOMIC); + /* FIXME: + 1) this is total overkill, orderly_poweroff() already + uses schedule_work internally + 2) it would be good to at least printk what is going on + */ if (work) { INIT_WORK(work, nv_poweroff_work); schedule_work(work); -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html signature.asc Description: Digital signature ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] noveau: emergency shutdown handling is overcomplex and broken
On Tue 2016-10-25 13:09:25, Karol Herbst wrote: > Thanks for the pointer. > > But I don't like this patch. If you find a bug, make a bug report or > just fix it if you know the fix already. Or write something in > IRC. Or I found a bug, and this is my bug report. Can you take care and fix it? Pavel > write on the Mailing list as a general question or something else > > But I really don't agree on doing it this way. You would have needed > like the same amount of time to actual fix the problem. > > Anyway, for adding a printk: > > struct nvkm_subdev *subdev = >subdev; > nvkm_error(subdev, "message"); > > 2016-10-25 12:50 GMT+02:00 Pavel Machek <pa...@ucw.cz>: > > > > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c > > b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c > > index b9703c0..adb1deb 100644 > > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c > > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c > > @@ -120,6 +120,11 @@ nvkm_therm_sensor_event(struct nvkm_therm *therm, enum > > nvkm_therm_thrs thrs, > > struct work_struct *work; > > > > work = kmalloc(sizeof(*work), GFP_ATOMIC); > > + /* FIXME: > > + 1) this is total overkill, orderly_poweroff() > > already > > + uses schedule_work internally > > + 2) it would be good to at least printk what is > > going on > > + */ > > if (work) { > > INIT_WORK(work, nv_poweroff_work); > > schedule_work(work); > > > > GFP_ATOMIC is not reliable. Plus, see the fixme. > > > > Best regards, > > > > Pavel > > > > -- > > (english) http://www.livejournal.com/~pavelmachek > > (cesky, pictures) > > http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html > > > > ___ > > Nouveau mailing list > > Nouveau@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/nouveau > > -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html signature.asc Description: Digital signature ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
[Nouveau] noveau: emergency shutdown handling is overcomplex and broken
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c index b9703c0..adb1deb 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c @@ -120,6 +120,11 @@ nvkm_therm_sensor_event(struct nvkm_therm *therm, enum nvkm_therm_thrs thrs, struct work_struct *work; work = kmalloc(sizeof(*work), GFP_ATOMIC); + /* FIXME: + 1) this is total overkill, orderly_poweroff() already + uses schedule_work internally + 2) it would be good to at least printk what is going on + */ if (work) { INIT_WORK(work, nv_poweroff_work); schedule_work(work); GFP_ATOMIC is not reliable. Plus, see the fixme. Best regards, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html signature.asc Description: Digital signature ___ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau
Re: [Nouveau] 2.6.33 vs. NVIDIA GForce GT 220
Hi! I tried enabling staging nvidia driver on GT220, but apparently driver does not know about it. Unfortunately, I have one of those cards here. (I wonder... is there better mailing list? MAINTAINERS only lists linux-fbdev) The list is nouv...@lists.freedesktop.org. And driver knows about GT220 just fine, I've been using it for a month or two on GT220 already. Don't bother Perhaps nouveau@lists.freedesktop.org should be added to MAINTAINERS? about the supported cards lists in xf86-video-nouveau or wherever else, the driver will happily bind to any nvidia video card with known generation, even if nobody has seen that precise model before. Unfortunately, the driver does not seem happy: Jan 18 12:56:38 pma kernel: [0.491073] nvidiafb :01:00.0: PCI INT A - GSI 16 (level, low) - IRQ 16 Jan 18 12:56:38 pma kernel: [0.491507] nvidiafb: Device ID: 10de0a20 Jan 18 12:56:38 pma kernel: [0.491546] Chipset is 10de0a20 Jan 18 12:56:38 pma kernel: [0.491584] nvidiafb: unknown NV_ARCH Jan 18 12:56:38 pma kernel: [0.492119] vga16fb: initializing One thing that could happen, however, is missing ctxprog for your chipset. In this case, you'll be stuck with non-accelerated nouveau until somebody extracts the ctxprog from blob mmiotrace on your card -- come to freenode.net IRC channel #nouveau if you need help with that. However, that shouldn't happen, since the GT220 chipset is already supported. I don't really need 3D acceleration, I'd just like to use whole size of screen... (and found out how to do that even now, after X update with vesa driver). Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html ___ Nouveau mailing list Nouveau@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/nouveau