Page MenuHomeFreeBSD

Add NOEPOCHASSERT().
ClosedPublic

Authored by glebius on Oct 14 2019, 4:19 AM.
Tags
None
Referenced Files
F148625974: D22017.diff
Thu, Mar 19, 5:36 AM
Unknown Object (File)
Tue, Mar 17, 8:30 AM
Unknown Object (File)
Sun, Mar 15, 12:46 AM
Unknown Object (File)
Wed, Mar 11, 7:14 PM
Unknown Object (File)
Tue, Mar 10, 3:31 PM
Unknown Object (File)
Thu, Feb 26, 4:32 AM
Unknown Object (File)
Feb 8 2026, 9:12 AM
Unknown Object (File)
Jan 30 2026, 5:30 PM
Subscribers

Details

Summary

Add a special assertion that would trigger if a thread
is in epoch. With EPOCH_TRACE present, it will also list the
epochs entered and entry points.

Diff Detail

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

Event Timeline

sys/net/if.c
3585 ↗(On Diff #63242)

This won't be part of commit. Added just to check functionality.

This revision is now accepted and ready to land.Oct 14 2019, 10:03 AM

Re-do the patch a bit. Instead of new macro, just add epoch_trace_list()
to the three critical places where we must not be in an epoch.

This revision now requires review to proceed.Oct 15 2019, 3:45 PM
sys/kern/kern_synch.c
152 ↗(On Diff #63297)

!= 0 instead of > 0 matches the KASSERT() below.

sys/kern/kern_synch.c
152 ↗(On Diff #63297)

I don't agree. The value isn't boolean, it is an unsigned counter. Using > 0 is more correct.

sys/kern/kern_synch.c
152 ↗(On Diff #63297)

I thought it was signed integer. If unsigned, then your check is OK.

This revision was not accepted when it landed; it landed in state Needs Review.Oct 15 2019, 9:24 PM
This revision was automatically updated to reflect the committed changes.