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 */