Pavel Machek
2016-Oct-25 10:50 UTC
[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 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 181 bytes Desc: Digital signature URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20161025/253afc2e/attachment.sig>
Karol Herbst
2016-Oct-25 11:09 UTC
[Nouveau] noveau: emergency shutdown handling is overcomplex and broken
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 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 = &therm->subdev; nvkm_error(subdev, "message"); 2016-10-25 12:50 GMT+02:00 Pavel Machek <pavel at 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 at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/nouveau >
Pavel Machek
2016-Oct-25 11:13 UTC
[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. OrI 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 = &therm->subdev; > nvkm_error(subdev, "message"); > > 2016-10-25 12:50 GMT+02:00 Pavel Machek <pavel at 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 at 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 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 181 bytes Desc: Digital signature URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20161025/fd2c04d2/attachment.sig>
Possibly Parallel Threads
- noveau: emergency shutdown handling is overcomplex and broken
- drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c: broken emergency poweroff handling
- [PATCH] drm/nouveau/therm: fix spelling mistake on array thresolds
- [PATCH v2 1/2] drm/nouveau: return temperatures in temp_get() via parameter
- [PATCH v2 1/2] drm/nouveau: return temperatures in temp_get() via parameter