freebsd-dev/sys/ddb
Konstantin Belousov 2d19b736ed 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
2016-07-28 09:09:55 +00:00
..
db_access.c ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_access.h ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_break.c ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_break.h
db_capture.c ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_command.c ddb: for pointers replace 0 with NULL. 2016-04-15 17:27:20 +00:00
db_command.h
db_examine.c Add a small set of logical operators to DDB command language. 2016-05-16 19:42:38 +00:00
db_expr.c Add a small set of logical operators to DDB command language. 2016-05-16 19:42:38 +00:00
db_input.c ddb: de-register 2015-05-23 14:59:27 +00:00
db_lex.c Add a small set of logical operators to DDB command language. 2016-05-16 19:42:38 +00:00
db_lex.h Add a small set of logical operators to DDB command language. 2016-05-16 19:42:38 +00:00
db_main.c Don't return undefined symbols to a DDB symbol lookup. 2015-07-21 23:07:55 +00:00
db_output.c sys: Make use of our rounddown() macro when sys/param.h is available. 2016-04-30 14:41:18 +00:00
db_output.h ddb: space/tab fixes. 2014-10-11 20:25:19 +00:00
db_print.c Various changes to the registers displayed in DDB for x86. 2015-07-22 01:09:02 +00:00
db_ps.c Rewrite subr_sleepqueue.c use of callouts to not depend on the 2016-07-28 09:09:55 +00:00
db_run.c Add helper to catch single step debug event and distinguish it from bkpt 2015-11-27 19:03:59 +00:00
db_script.c ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_sym.c ddb: for pointers replace 0 with NULL. 2016-04-15 17:27:20 +00:00
db_sym.h ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_textdump.c sys/ddb: spelling fixes in comments. 2016-04-29 20:53:39 +00:00
db_thread.c ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00
db_variables.c Indentation issues. 2016-04-20 16:19:44 +00:00
db_variables.h ddb: space/tab fixes. 2014-10-11 20:25:19 +00:00
db_watch.c ddb: de-register 2015-05-23 14:59:27 +00:00
db_watch.h ddb: space/tab fixes. 2014-10-11 20:25:19 +00:00
db_write_cmd.c ddb: de-register 2015-05-23 14:59:27 +00:00
ddb.h ddb: finish converting boolean values. 2015-05-21 15:16:18 +00:00