On 2025/11/28 18:34, Piotr K. Isajew wrote: > On Mon, Nov 24, 2025 at 10:45:56PM +0100, Jeremie Courreges-Anglas wrote: > > > On Mon, Nov 17, 2025 at 01:58:06PM +0100, Piotr K. Isajew > > wrote: > > > On Sun, Nov 16, 2025 at 02:21:51PM +0100, Claudio Jeker wrote: > > > > > > > > > Index: dev/pci/drm/drm_linux.c > > > > > > =================================================================== > > > > > > RCS file: /cvs/src/sys/dev/pci/drm/drm_linux.c,v > > > > > > diff -u -p -r1.126 drm_linux.c > > > > > > --- dev/pci/drm/drm_linux.c 13 Jun 2025 07:01:37 -0000 1.126 > > > > > > +++ dev/pci/drm/drm_linux.c 15 Nov 2025 13:27:22 -0000 > > > > > > @@ -126,7 +126,7 @@ __set_current_state(int state) > > > > > > SCHED_LOCK(); > > > > > > unsleep(p); > > > > > > p->p_stat = SONPROC; > > > > > > - atomic_clearbits_int(&p->p_flag, P_INSCHED); > > > > > > + atomic_clearbits_int(&p->p_flag, P_INSCHED|P_SINTR); > > > > > > SCHED_UNLOCK(); > > > > > > } > > > > > > > > > > > > > > This bit is obviously right. This clears the sleep and needs to clear > > > > P_SINTR as well. I once tried to use sleep_finish(INFSLP, 0); here > > > > instead > > > > of hand rolling the same but it is not quite the same behaviour (since > > > > __set_current_state code skips any signal checks). > > > > > > > > > I'm running above diff on a machine that was previously hit by > > > frequent freezes during video playback. Runs several hours > > > without any issues now. > > > > Could you please confirm whether you've tested the fix applied to a > > -stable (7.8) or to a -current tree? > > I tested the fix. It works for me. With this change applied I > don't experience system freezes/crashes anymore. > > It doesn't seem to be tagged with stable though. >
the question is whether you've tested the diff adding the fix on a 7.8 tree or a -current tree; there have been a bunch of other commits in the drm area to -current since 7.8 release, so testing 7.8 + the diff would be useful in order to know whether it's enough by itself to fix things for -stable, or whether something else might be needed
