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)
Fri, Oct 3, 8:48 PM
Unknown Object (File)
Thu, Oct 2, 7:07 PM
Unknown Object (File)
Thu, Oct 2, 5:48 PM
Unknown Object (File)
Thu, Oct 2, 5:05 PM
Unknown Object (File)
Thu, Oct 2, 5:05 PM
Unknown Object (File)
Thu, Oct 2, 2:24 PM
Unknown Object (File)
Aug 8 2025, 9:17 PM
Unknown Object (File)
Aug 5 2025, 1:41 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.