aboutsummaryrefslogtreecommitdiff
path: root/sys/cam/cam_iosched.c
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2021-08-11 00:05:40 +0000
committerAlexander Motin <mav@FreeBSD.org>2021-08-11 00:07:19 +0000
commit303477d3253007bb5732deed2daea86b2cbd9aa8 (patch)
tree39cf849a5eecba41dafa7991fb0dd11dbd4f19ef /sys/cam/cam_iosched.c
parent94feb1f1eb4c3527efdbd0b3f556eb3cb37c3318 (diff)
downloadsrc-303477d3253007bb5732deed2daea86b2cbd9aa8.tar.gz
src-303477d3253007bb5732deed2daea86b2cbd9aa8.zip
cam(4): Mark all sysctls as CTLFLAG_MPSAFE.
This code does not use Giant lock for very long time. MFC after: 2 weeks
Diffstat (limited to 'sys/cam/cam_iosched.c')
-rw-r--r--sys/cam/cam_iosched.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/sys/cam/cam_iosched.c b/sys/cam/cam_iosched.c
index b293002fb2ca..98ae98bc1d80 100644
--- a/sys/cam/cam_iosched.c
+++ b/sys/cam/cam_iosched.c
@@ -1009,7 +1009,7 @@ cam_iosched_iop_stats_sysctl_init(struct cam_iosched_softc *isc, struct iop_stat
SYSCTL_ADD_PROC(ctx, n,
OID_AUTO, "limiter",
- CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
+ CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_MPSAFE,
ios, 0, cam_iosched_limiter_sysctl, "A",
"Current limiting type.");
SYSCTL_ADD_INT(ctx, n,
@@ -1027,7 +1027,7 @@ cam_iosched_iop_stats_sysctl_init(struct cam_iosched_softc *isc, struct iop_stat
SYSCTL_ADD_PROC(ctx, n,
OID_AUTO, "latencies",
- CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
+ CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE,
&ios->latencies, 0,
cam_iosched_sysctl_latencies, "A",
"Array of power of 2 latency from 1ms to 1.024s");
@@ -1057,22 +1057,22 @@ cam_iosched_cl_sysctl_init(struct cam_iosched_softc *isc)
SYSCTL_ADD_PROC(ctx, n,
OID_AUTO, "type",
- CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
+ CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_MPSAFE,
clp, 0, cam_iosched_control_type_sysctl, "A",
"Control loop algorithm");
SYSCTL_ADD_PROC(ctx, n,
OID_AUTO, "steer_interval",
- CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
+ CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_MPSAFE,
&clp->steer_interval, 0, cam_iosched_sbintime_sysctl, "A",
"How often to steer (in us)");
SYSCTL_ADD_PROC(ctx, n,
OID_AUTO, "lolat",
- CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
+ CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_MPSAFE,
&clp->lolat, 0, cam_iosched_sbintime_sysctl, "A",
"Low water mark for Latency (in us)");
SYSCTL_ADD_PROC(ctx, n,
OID_AUTO, "hilat",
- CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
+ CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_MPSAFE,
&clp->hilat, 0, cam_iosched_sbintime_sysctl, "A",
"Hi water mark for Latency (in us)");
SYSCTL_ADD_INT(ctx, n,
@@ -1200,7 +1200,7 @@ void cam_iosched_sysctl_init(struct cam_iosched_softc *isc,
"How biased towards read should we be independent of limits");
SYSCTL_ADD_PROC(ctx, n,
- OID_AUTO, "quanta", CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
+ OID_AUTO, "quanta", CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_MPSAFE,
&isc->quanta, 0, cam_iosched_quanta_sysctl, "I",
"How many quanta per second do we slice the I/O up into");