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, Sep 6, 11:09 AM
Unknown Object (File)
Sat, Sep 5, 7:09 PM
Unknown Object (File)
Sat, Sep 5, 2:44 PM
Unknown Object (File)
Sat, Sep 5, 10:50 AM
Unknown Object (File)
Sat, Sep 5, 6:02 AM
Unknown Object (File)
Sat, Sep 5, 2:52 AM
Unknown Object (File)
Fri, Sep 4, 10:59 PM
Unknown Object (File)
Fri, Sep 4, 10:13 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.