Page MenuHomeFreeBSD

Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (M of N)
ClosedPublic

Authored by kaktus on Feb 26 2020, 3:17 PM.

Details

Summary

r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes.
This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags.
Mark obvious cases as MPSAFE. All entries that haven't been marked as MPSAFE before are by default marked as NEEDGIANT.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

cem added a subscriber: cem.
cem added inline comments.
sys/dev/random/fortuna.c
305 ↗(On Diff #68843)

I think mpsafe is fine here.

sys/dev/random/random_harvestq.c
114 ↗(On Diff #68843)

Kinda feels like NODE type sysctls should be MPSAFE globally. The weird exceptions with handlers should have to opt out of mpsafe. Imo.

309 ↗(On Diff #68843)

Sure. There is some trivial conversion to atomic update here but that’s not the goal of this patch series.

331 ↗(On Diff #68843)

MPSAFE

393 ↗(On Diff #68843)

MPSAFE

This revision is now accepted and ready to land.Feb 26 2020, 4:56 PM

OK, I'll mark them as mpsafe in a commit.

sys/dev/random/random_harvestq.c
114 ↗(On Diff #68843)

Too late, this is the last patch in the whole series of adding NEEDGIANT :-)
I'll invite you to a brainstorming review for a proposed decoupling of nodes with handlers so this mess could be removed.