The small bits of code hiding behind rthreads_enabled aren't really
experimental anymore. At this point, it's just one more knob you can
twist to break your system.


Index: kern/kern_exit.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_exit.c,v
retrieving revision 1.121
diff -u -p -r1.121 kern_exit.c
--- kern/kern_exit.c    30 Mar 2013 06:32:25 -0000      1.121
+++ kern/kern_exit.c    5 Apr 2013 22:18:44 -0000
@@ -96,9 +96,6 @@ sys___threxit(struct proc *p, void *v, r
                syscallarg(pid_t *) notdead;
        } */ *uap = v;
 
-       if (!rthreads_enabled)
-               return (EINVAL);
-
        if (SCARG(uap, notdead) != NULL) {
                pid_t zero = 0;
                if (copyout(&zero, SCARG(uap, notdead), sizeof(zero))) {
Index: kern/kern_fork.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_fork.c,v
retrieving revision 1.145
diff -u -p -r1.145 kern_fork.c
--- kern/kern_fork.c    14 Mar 2013 21:38:22 -0000      1.145
+++ kern/kern_fork.c    5 Apr 2013 22:18:44 -0000
@@ -243,8 +243,6 @@ fork1(struct proc *curp, int exitsig, in
 
        /* sanity check some flag combinations */
        if (flags & FORK_THREAD) {
-               if (!rthreads_enabled)
-                       return (ENOTSUP);
                if ((flags & (FORK_SIGHAND | FORK_NOZOMBIE)) !=
                    (FORK_SIGHAND | FORK_NOZOMBIE))
                        return (EINVAL);
Index: kern/kern_prot.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_prot.c,v
retrieving revision 1.55
diff -u -p -r1.55 kern_prot.c
--- kern/kern_prot.c    1 Oct 2012 00:08:42 -0000       1.55
+++ kern/kern_prot.c    5 Apr 2013 22:18:44 -0000
@@ -72,8 +72,6 @@ int
 sys_getthrid(struct proc *p, void *v, register_t *retval)
 {
 
-       if (!rthreads_enabled)
-               return (ENOTSUP);
        *retval = p->p_pid + THREAD_PID_OFFSET;
        return (0);
 }
Index: kern/kern_sig.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_sig.c,v
retrieving revision 1.149
diff -u -p -r1.149 kern_sig.c
--- kern/kern_sig.c     28 Mar 2013 16:55:25 -0000      1.149
+++ kern/kern_sig.c     5 Apr 2013 22:18:44 -0000
@@ -1612,9 +1612,6 @@ sys___thrsigdivert(struct proc *p, void 
        long long to_ticks = 0;
        int error;
 
-       if (!rthreads_enabled)
-               return (ENOTSUP);
-
        m = NULL;
        mask = SCARG(uap, sigmask) &~ sigcantmask;
 
Index: kern/kern_synch.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_synch.c,v
retrieving revision 1.104
diff -u -p -r1.104 kern_synch.c
--- kern/kern_synch.c   21 Aug 2012 19:51:58 -0000      1.104
+++ kern/kern_synch.c   5 Apr 2013 22:18:44 -0000
@@ -409,10 +409,6 @@ sys___thrsleep(struct proc *p, void *v, 
        long long to_ticks = 0;
        int abort, error;
 
-       if (!rthreads_enabled) {
-               *retval = ENOTSUP;
-               return (0);
-       }
        if (ident == 0) {
                *retval = EINVAL;
                return (0);
@@ -496,9 +492,7 @@ sys___thrwakeup(struct proc *p, void *v,
        struct proc *q;
        int found = 0;
 
-       if (!rthreads_enabled)
-               *retval = ENOTSUP;
-       else if (ident == 0)
+       if (ident == 0)
                *retval = EINVAL;
        else {
                TAILQ_FOREACH(q, &p->p_p->ps_threads, p_thr_link) {
Index: kern/kern_sysctl.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_sysctl.c,v
retrieving revision 1.233
diff -u -p -r1.233 kern_sysctl.c
--- kern/kern_sysctl.c  23 Mar 2013 21:22:20 -0000      1.233
+++ kern/kern_sysctl.c  5 Apr 2013 22:18:44 -0000
@@ -129,8 +129,6 @@ int (*cpu_cpuspeed)(int *);
 void (*cpu_setperf)(int);
 int perflevel = 100;
 
-int rthreads_enabled = 1;
-
 /*
  * Lock to avoid too many processes vslocking a large amount of memory
  * at the same time.
@@ -565,9 +563,6 @@ kern_sysctl(int *name, u_int namelen, vo
        case KERN_CPTIME2:
                return (sysctl_cptime2(name + 1, namelen -1, oldp, oldlenp,
                    newp, newlen));
-       case KERN_RTHREADS:
-               return (sysctl_int(oldp, oldlenp, newp, newlen,
-                   &rthreads_enabled));
        case KERN_CACHEPCT: {
                u_int64_t dmapages;
                int opct, pgs;
Index: sys/sysctl.h
===================================================================
RCS file: /cvs/src/sys/sys/sysctl.h,v
retrieving revision 1.131
diff -u -p -r1.131 sysctl.h
--- sys/sysctl.h        24 Mar 2013 00:09:31 -0000      1.131
+++ sys/sysctl.h        5 Apr 2013 22:18:44 -0000
@@ -174,7 +174,6 @@ struct ctlname {
 #define        KERN_CPTIME2            71      /* array: cp_time2 */
 #define        KERN_CACHEPCT           72      /* buffer cache % of physmem */
 #define        KERN_FILE2              73      /* struct: file entries */
-#define        KERN_RTHREADS           74      /* kernel rthreads support 
enabled */
 #define        KERN_CONSDEV            75      /* dev_t: console terminal 
device */
 #define        KERN_NETLIVELOCKS       76      /* int: number of network 
livelocks */
 #define        KERN_POOL_DEBUG         77      /* int: enable pool_debug */
@@ -256,7 +255,7 @@ struct ctlname {
        { "cp_time2", CTLTYPE_STRUCT }, \
        { "bufcachepercent", CTLTYPE_INT }, \
        { "file2", CTLTYPE_STRUCT }, \
-       { "rthreads", CTLTYPE_INT }, \
+       { "rthreads", 0 }, \
        { "consdev", CTLTYPE_STRUCT }, \
        { "netlivelocks", CTLTYPE_INT }, \
        { "pool_debug", CTLTYPE_INT }, \
Index: sys/systm.h
===================================================================
RCS file: /cvs/src/sys/sys/systm.h,v
retrieving revision 1.96
diff -u -p -r1.96 systm.h
--- sys/systm.h 28 Mar 2013 16:41:39 -0000      1.96
+++ sys/systm.h 5 Apr 2013 22:18:44 -0000
@@ -110,8 +110,6 @@ struct proc;
 struct process;
 #define curproc curcpu()->ci_curproc
 
-extern int rthreads_enabled;
-
 typedef int    sy_call_t(struct proc *, void *, register_t *);
 
 extern struct sysent {         /* system call table */

Reply via email to