Author: markj
Date: Mon Feb 18 22:47:16 2013
New Revision: 246951
URL: http://svnweb.freebsd.org/changeset/base/246951

Log:
  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

Modified:
  head/sys/dev/coretemp/coretemp.c

Modified: head/sys/dev/coretemp/coretemp.c
==============================================================================
--- head/sys/dev/coretemp/coretemp.c    Mon Feb 18 22:03:04 2013        
(r246950)
+++ head/sys/dev/coretemp/coretemp.c    Mon Feb 18 22:47:16 2013        
(r246951)
@@ -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");
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to