Date: Sat, 24 May 2003 17:48:55 -0700 From: Hiten Pandya <hmp@FreeBSD.ORG> To: arch@FreeBSD.ORG Cc: des@FreeBSD.ORG Subject: scheduler determination Message-ID: <20030525004855.GA67985@perrin.int.nxad.com>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Hi Gang.
It would be really nice if there was a way to find out the name of
the current scheduler in the system. I have attached a patch which adds
a sysctl called kern.sched.name, which does just that.
Comments and suggestions welcome.
Cheers.
-- Hiten (hmp@FreeBSD.ORG)
[-- Attachment #2 --]
Index: kern/kern_mib.c
===================================================================
RCS file: /home/ncvs/src/sys/kern/kern_mib.c,v
retrieving revision 1.65
diff -u -r1.65 kern_mib.c
--- kern/kern_mib.c 30 Apr 2003 12:57:39 -0000 1.65
+++ kern/kern_mib.c 25 May 2003 00:04:44 -0000
@@ -85,6 +85,8 @@
"Regression test MIB");
#endif
+SYSCTL_NODE(_kern, OID_AUTO, sched, CTLFLAG_RW, 0, "SCHED");
+
SYSCTL_STRING(_kern, KERN_OSRELEASE, osrelease, CTLFLAG_RD,
osrelease, 0, "Operating system release");
Index: kern/sched_4bsd.c
===================================================================
RCS file: /home/ncvs/src/sys/kern/sched_4bsd.c,v
retrieving revision 1.18
diff -u -r1.18 sched_4bsd.c
--- kern/sched_4bsd.c 30 Apr 2003 12:57:39 -0000 1.18
+++ kern/sched_4bsd.c 25 May 2003 00:44:07 -0000
@@ -46,9 +46,9 @@
#include <sys/mutex.h>
#include <sys/proc.h>
#include <sys/resourcevar.h>
+#include <sys/sysctl.h>
#include <sys/sched.h>
#include <sys/smp.h>
-#include <sys/sysctl.h>
#include <sys/sx.h>
/*
@@ -87,6 +87,10 @@
SYSINIT(sched_setup, SI_SUB_KICK_SCHEDULER, SI_ORDER_FIRST, sched_setup, NULL)
+static char sched_name[] = "4bsd";
+SYSCTL_STRING(_kern_sched, OID_AUTO, name, CTLFLAG_RD, sched_name, 0,
+ "Current scheduler");
+
/*
* Global run queue.
*/
@@ -109,7 +113,7 @@
return (0);
}
-SYSCTL_PROC(_kern, OID_AUTO, quantum, CTLTYPE_INT|CTLFLAG_RW,
+SYSCTL_PROC(_kern_sched, OID_AUTO, quantum, CTLTYPE_INT|CTLFLAG_RW,
0, sizeof sched_quantum, sysctl_kern_quantum, "I",
"Roundrobin scheduling quantum in microseconds");
Index: kern/sched_ule.c
===================================================================
RCS file: /home/ncvs/src/sys/kern/sched_ule.c,v
retrieving revision 1.34
diff -u -r1.34 sched_ule.c
--- kern/sched_ule.c 2 May 2003 06:18:55 -0000 1.34
+++ kern/sched_ule.c 25 May 2003 00:43:08 -0000
@@ -34,10 +34,10 @@
#include <sys/mutex.h>
#include <sys/proc.h>
#include <sys/resource.h>
+#include <sys/sysctl.h>
#include <sys/sched.h>
#include <sys/smp.h>
#include <sys/sx.h>
-#include <sys/sysctl.h>
#include <sys/sysproto.h>
#include <sys/vmmeter.h>
#ifdef DDB
@@ -60,7 +60,9 @@
static void sched_setup(void *dummy);
SYSINIT(sched_setup, SI_SUB_RUN_QUEUE, SI_ORDER_FIRST, sched_setup, NULL)
-static SYSCTL_NODE(_kern, OID_AUTO, sched, CTLFLAG_RW, 0, "SCHED");
+static char sched_name[] = "ule";
+SYSCTL_STRING(_kern_sched, OID_AUTO, name, CTLFLAG_RD, sched_name, 0,
+ "Current scheduler");
static int sched_strict;
SYSCTL_INT(_kern_sched, OID_AUTO, strict, CTLFLAG_RD, &sched_strict, 0, "");
Index: sys/sched.h
===================================================================
RCS file: /home/ncvs/src/sys/sys/sched.h,v
retrieving revision 1.4
diff -u -r1.4 sched.h
--- sys/sched.h 11 Apr 2003 03:39:06 -0000 1.4
+++ sys/sched.h 25 May 2003 00:17:35 -0000
@@ -92,4 +92,8 @@
extern struct p_sched *proc0_sched;
extern struct td_sched *thread0_sched;
+#ifdef SYSCTL_DECL
+SYSCTL_DECL(_kern_sched);
+#endif
+
#endif /* !_SYS_SCHED_H_ */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030525004855.GA67985>
