Mark the coretemp(4) sysctls as MPSAFE, ensuring that Giant won't be held

unnecessarily by a user thread waiting to run on a specific CPU after
calling sched_bind().

Reviewed by:	rstone
Approved by:	emaste (co-mentor)
Sponsored by:	Sandvine Incorporated
MFC after:	1 week
This commit is contained in:
Mark Johnston 2013-02-18 22:47:16 +00:00
parent fea692b5f6
commit e42412a966

View File

@ -274,23 +274,23 @@ coretemp_attach(device_t dev)
* Add the MIBs to dev.cpu.N and dev.cpu.N.coretemp.
*/
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(device_get_sysctl_tree(pdev)),
OID_AUTO, "temperature", CTLTYPE_INT | CTLFLAG_RD, dev,
CORETEMP_TEMP, coretemp_get_val_sysctl, "IK",
OID_AUTO, "temperature", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE,
dev, CORETEMP_TEMP, coretemp_get_val_sysctl, "IK",
"Current temperature");
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, "delta",
CTLTYPE_INT | CTLFLAG_RD, dev, CORETEMP_DELTA,
CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, dev, CORETEMP_DELTA,
coretemp_get_val_sysctl, "I",
"Delta between TCC activation and current temperature");
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, "resolution",
CTLTYPE_INT | CTLFLAG_RD, dev, CORETEMP_RESOLUTION,
CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, dev, CORETEMP_RESOLUTION,
coretemp_get_val_sysctl, "I",
"Resolution of CPU thermal sensor");
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO, "tjmax",
CTLTYPE_INT | CTLFLAG_RD, dev, CORETEMP_TJMAX,
CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, dev, CORETEMP_TJMAX,
coretemp_get_val_sysctl, "IK",
"TCC activation temperature");
SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(oid), OID_AUTO,
"throttle_log", CTLTYPE_INT | CTLFLAG_RW, dev, 0,
"throttle_log", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, dev, 0,
coretemp_throttle_log_sysctl, "I",
"Set to 1 if the thermal sensor has tripped");