Changeset View
Changeset View
Standalone View
Standalone View
sys/cam/cam_iosched.c
Context not available. | |||||
ios->sysctl_tree = SYSCTL_ADD_NODE(&isc->sysctl_ctx, | ios->sysctl_tree = SYSCTL_ADD_NODE(&isc->sysctl_ctx, | ||||
SYSCTL_CHILDREN(isc->sysctl_tree), OID_AUTO, name, | SYSCTL_CHILDREN(isc->sysctl_tree), OID_AUTO, name, | ||||
CTLFLAG_RD, 0, name); | CTLFLAG_RD | CTLFLAG_MPSAFE, 0, name); | ||||
n = SYSCTL_CHILDREN(ios->sysctl_tree); | n = SYSCTL_CHILDREN(ios->sysctl_tree); | ||||
ctx = &ios->sysctl_ctx; | ctx = &ios->sysctl_ctx; | ||||
Context not available. | |||||
"# of transactions completed with an error"); | "# of transactions completed with an error"); | ||||
SYSCTL_ADD_PROC(ctx, n, | SYSCTL_ADD_PROC(ctx, n, | ||||
OID_AUTO, "limiter", CTLTYPE_STRING | CTLFLAG_RW, | OID_AUTO, "limiter", | ||||
CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
ios, 0, cam_iosched_limiter_sysctl, "A", | ios, 0, cam_iosched_limiter_sysctl, "A", | ||||
"Current limiting type."); | "Current limiting type."); | ||||
SYSCTL_ADD_INT(ctx, n, | SYSCTL_ADD_INT(ctx, n, | ||||
Context not available. | |||||
"current resource"); | "current resource"); | ||||
SYSCTL_ADD_PROC(ctx, n, | SYSCTL_ADD_PROC(ctx, n, | ||||
OID_AUTO, "latencies", CTLTYPE_STRING | CTLFLAG_RD, | OID_AUTO, "latencies", | ||||
CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | |||||
&ios->latencies, 0, | &ios->latencies, 0, | ||||
cam_iosched_sysctl_latencies, "A", | cam_iosched_sysctl_latencies, "A", | ||||
"Array of power of 2 latency from 1ms to 1.024s"); | "Array of power of 2 latency from 1ms to 1.024s"); | ||||
Context not available. | |||||
clp = &isc->cl; | clp = &isc->cl; | ||||
clp->sysctl_tree = SYSCTL_ADD_NODE(&isc->sysctl_ctx, | clp->sysctl_tree = SYSCTL_ADD_NODE(&isc->sysctl_ctx, | ||||
SYSCTL_CHILDREN(isc->sysctl_tree), OID_AUTO, "control", | SYSCTL_CHILDREN(isc->sysctl_tree), OID_AUTO, "control", | ||||
CTLFLAG_RD, 0, "Control loop info"); | CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "Control loop info"); | ||||
n = SYSCTL_CHILDREN(clp->sysctl_tree); | n = SYSCTL_CHILDREN(clp->sysctl_tree); | ||||
ctx = &clp->sysctl_ctx; | ctx = &clp->sysctl_ctx; | ||||
SYSCTL_ADD_PROC(ctx, n, | SYSCTL_ADD_PROC(ctx, n, | ||||
OID_AUTO, "type", CTLTYPE_STRING | CTLFLAG_RW, | OID_AUTO, "type", | ||||
CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
clp, 0, cam_iosched_control_type_sysctl, "A", | clp, 0, cam_iosched_control_type_sysctl, "A", | ||||
"Control loop algorithm"); | "Control loop algorithm"); | ||||
SYSCTL_ADD_PROC(ctx, n, | SYSCTL_ADD_PROC(ctx, n, | ||||
OID_AUTO, "steer_interval", CTLTYPE_STRING | CTLFLAG_RW, | OID_AUTO, "steer_interval", | ||||
CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
&clp->steer_interval, 0, cam_iosched_sbintime_sysctl, "A", | &clp->steer_interval, 0, cam_iosched_sbintime_sysctl, "A", | ||||
"How often to steer (in us)"); | "How often to steer (in us)"); | ||||
SYSCTL_ADD_PROC(ctx, n, | SYSCTL_ADD_PROC(ctx, n, | ||||
OID_AUTO, "lolat", CTLTYPE_STRING | CTLFLAG_RW, | OID_AUTO, "lolat", | ||||
CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
&clp->lolat, 0, cam_iosched_sbintime_sysctl, "A", | &clp->lolat, 0, cam_iosched_sbintime_sysctl, "A", | ||||
"Low water mark for Latency (in us)"); | "Low water mark for Latency (in us)"); | ||||
SYSCTL_ADD_PROC(ctx, n, | SYSCTL_ADD_PROC(ctx, n, | ||||
OID_AUTO, "hilat", CTLTYPE_STRING | CTLFLAG_RW, | OID_AUTO, "hilat", | ||||
CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
&clp->hilat, 0, cam_iosched_sbintime_sysctl, "A", | &clp->hilat, 0, cam_iosched_sbintime_sysctl, "A", | ||||
"Hi water mark for Latency (in us)"); | "Hi water mark for Latency (in us)"); | ||||
SYSCTL_ADD_INT(ctx, n, | SYSCTL_ADD_INT(ctx, n, | ||||
Context not available. | |||||
isc->sysctl_tree = SYSCTL_ADD_NODE(&isc->sysctl_ctx, | isc->sysctl_tree = SYSCTL_ADD_NODE(&isc->sysctl_ctx, | ||||
SYSCTL_CHILDREN(node), OID_AUTO, "iosched", | SYSCTL_CHILDREN(node), OID_AUTO, "iosched", | ||||
CTLFLAG_RD, 0, "I/O scheduler statistics"); | CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "I/O scheduler statistics"); | ||||
n = SYSCTL_CHILDREN(isc->sysctl_tree); | n = SYSCTL_CHILDREN(isc->sysctl_tree); | ||||
ctx = &isc->sysctl_ctx; | ctx = &isc->sysctl_ctx; | ||||
Context not available. | |||||
"How biased towards read should we be independent of limits"); | "How biased towards read should we be independent of limits"); | ||||
SYSCTL_ADD_PROC(ctx, n, | SYSCTL_ADD_PROC(ctx, n, | ||||
OID_AUTO, "quanta", CTLTYPE_UINT | CTLFLAG_RW, | OID_AUTO, "quanta", CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
&isc->quanta, 0, cam_iosched_quanta_sysctl, "I", | &isc->quanta, 0, cam_iosched_quanta_sysctl, "I", | ||||
"How many quanta per second do we slice the I/O up into"); | "How many quanta per second do we slice the I/O up into"); | ||||
Context not available. |