Age | Commit message (Collapse) | Author |
|
ok jsing@, miod@
|
|
nitems() in two places instead of coding the array size and fix a
spot of whitespace.
ok miod@ blambert@
|
|
wheel). This was safe, except for osiop bugs.
|
|
Idea and original patch mk@
ok mk@, krw@
|
|
All cpus are stopped and this cpu blocks all interrupts. It doesn't make
sense to grab locks that ddb can then jump past with longjmp.
Noticed by Pierre Riteau. I just forgot about the bug until reminded
today.
|
|
in something other than clock ticks. From art@'s punchlist and (for
the time being) not yet used.
"you're doing it wrong" art@,ray@,otto@,tedu@
ok art@
|
|
subtly different from CIRCLEQ, it is possible, when emptying the whole
timeout chain, to end up with CIRCQ_EMPTY being false, and bad things
happen. Back to the drawing board...
|
|
|
|
art pointed out that timeout_set is the initializer of timeout structs.
this means that the ONQUEUE flag could be set when timeout_set is given
freshly allocated memory. my commit suddenly introduced the requirement
that you bzero a timeout before initialising it. without the bzero we
could generate false positives about the timeout being already queued.
art did produce a diff that would walk the queues when the flag was set
to see if it really was in the lists, but deraadt considers this too much
of a hit.
|
|
screw up the queues that tie all the timeouts together. this makes us
panic if we detect that happening. its a lot easier to debug that the
weird side effects of broken timeout queues.
ok mickey@ kettenis@ deraadt@ pedro@
|
|
|
|
okay nordin@
|
|
Update ticks in timeout_hardclock_update to avoid errors in hardclock (this
is the third time we mess up here). ticks is only used for timeouts anyway.
At the same protect updating ticks with timeout_mutex and be slightly
more paranoid in timeout_hardclock_update.
ok tdeval@ miod@
|
|
biglock. We need to protect them with a mutex.
|
|
|
|
Close PR 3262
|
|
ok art@ deraadt@ miod@ tdeval@
|
|
- show timeout_todo in the ddb command.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
timeout is actually executing.
|
|
will trigger $OpenBSD$ fill-in)
|
|
|
|
in timeout_hardclock_update() check out if there is
anything in the timeout queue before calculating the return value.
thanks to Adam Rogoyski <rogoyski@cs.utexas.edu> for
debugging and testing help.
|
|
|
|
|
|
makes it the callers responsibility to allocate resources for the
timeouts.
This is a KISS implementation and does _not_ solve the problems of slow
handling of a large number of pending timeouts (this will be solved in
future work) (although hardclock is now guarateed to take constant time
for handling of timeouts).
Old timeout() and untimeout() are implemented as wrappers around the new
API and kept for compatibility. They will be removed as soon as all
subsystems are converted to use the new API.
|