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
Unknown Object (File)
Sun, Mar 22, 4:22 PM
Unknown Object (File)
Sat, Mar 21, 5:38 AM
Unknown Object (File)
Wed, Mar 18, 10:05 PM
Unknown Object (File)
Sun, Mar 15, 5:24 AM
Unknown Object (File)
Mon, Mar 9, 8:14 PM
Unknown Object (File)
Sat, Feb 28, 2:26 PM
Unknown Object (File)
Feb 14 2026, 7:58 PM
Unknown Object (File)
Jan 17 2026, 5:08 AM
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.