svn commit: r303426 - in head/sys: ddb kern sys

Hans Petter Selasky hps at selasky.org
Wed Aug 10 15:55:42 UTC 2016


On 07/28/16 11:09, Konstantin Belousov wrote:
> Author: kib
> Date: Thu Jul 28 09:09:55 2016
> New Revision: 303426
> URL: https://svnweb.freebsd.org/changeset/base/303426
>
> Log:
>   Rewrite subr_sleepqueue.c use of callouts to not depend on the
>   specifics of callout KPI.  Esp., do not depend on the exact interface
>   of callout_stop(9) return values.
>
>   The main change is that instead of requiring precise callouts, code
>   maintains absolute time to wake up.  Callouts now should ensure that a
>   wake occurs at the requested moment, but we can tolerate both run-away
>   callout, and callout_stop(9) lying about running callout either way.
>
>   As consequence, it removes the constant source of the bugs where
>   sleepq_check_timeout() causes uninterruptible thread state where the
>   thread is detached from CPU, see e.g. r234952 and r296320.
>
>   Patch also removes dual meaning of the TDF_TIMEOUT flag, making code
>   (IMO much) simpler to reason about.
>
>   Tested by:	pho
>   Reviewed by:	jhb
>   Sponsored by:	The FreeBSD Foundation
>   MFC after:	1 month
>   Differential revision:	https://reviews.freebsd.org/D7137
>
> Modified:
>   head/sys/ddb/db_ps.c
>   head/sys/kern/kern_thread.c
>   head/sys/kern/subr_sleepqueue.c
>   head/sys/sys/proc.h
>

Hi,

I think that:

#define	SWT_SLEEPQTIMO		5	/* Sleepq timeout wait. */

in sys/proc.h can also be marked "available" after this change.

--HPS



More information about the svn-src-all mailing list