Page MenuHomeFreeBSD

Use SCHEDULER_STOPPED() in cv_*wait*() instead of checking panicstr.
ClosedPublic

Authored by jhb on Mar 1 2016, 10:22 PM.
Tags
None
Referenced Files
F153465372: D5516.id.diff
Tue, Apr 21, 8:06 AM
Unknown Object (File)
Mon, Apr 13, 12:14 PM
Unknown Object (File)
Sat, Apr 4, 4:59 PM
Unknown Object (File)
Mar 22 2026, 4:22 PM
Unknown Object (File)
Mar 21 2026, 5:38 AM
Unknown Object (File)
Mar 18 2026, 10:05 PM
Unknown Object (File)
Mar 15 2026, 5:24 AM
Unknown Object (File)
Mar 9 2026, 8:14 PM
Subscribers

Details

Summary

Use SCHEDULER_STOPPED() in cv_*wait*() instead of checking panicstr.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

jhb retitled this revision from to Use SCHEDULER_STOPPED() in cv_*wait*() instead of checking panicstr..
jhb updated this object.
jhb edited the test plan for this revision. (Show Details)
jhb added a reviewer: kib.
kib edited edge metadata.

Doesn't 'cold' accesses somewhat defeat the optimization of SCHEDULER_STOPPED() ?

This revision is now accepted and ready to land.Mar 1 2016, 10:34 PM

Possibly, but this is what the sleep functions in kern_synch.c do. Longer term I plan to split these up to permit unbounded sleeps while cold (I think I now want to just panic outright for sleeps with a timeout while cold. The round-robin thing I first implemented in my patch to arch@ wasn't that great since some code depends on actually sleeping for the requested time ala pause()).

This revision was automatically updated to reflect the committed changes.