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
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.