Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Sep 2004 07:02:47 GMT
From:      Julian Elischer <julian@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 61122 for review
Message-ID:  <200409070702.i8772lh2013338@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=61122

Change 61122 by julian@julian_ref on 2004/09/07 07:02:10

	IFC@61120

Affected files ...

.. //depot/projects/nsched/sys/dev/ed/if_ed.c#6 integrate
.. //depot/projects/nsched/sys/dev/firewire/sbp.c#6 integrate
.. //depot/projects/nsched/sys/kern/kern_event.c#7 integrate
.. //depot/projects/nsched/sys/kern/kern_switch.c#13 integrate
.. //depot/projects/nsched/sys/kern/kern_thr.c#16 integrate
.. //depot/projects/nsched/sys/kern/subr_witness.c#6 integrate
.. //depot/projects/nsched/sys/net/if.c#11 integrate
.. //depot/projects/nsched/sys/netgraph/ng_pptpgre.c#4 integrate

Differences ...

==== //depot/projects/nsched/sys/dev/ed/if_ed.c#6 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ed/if_ed.c,v 1.233 2004/08/13 23:04:23 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ed/if_ed.c,v 1.234 2004/09/06 21:14:32 glebius Exp $");
 
 /*
  * Device driver for National Semiconductor DS8390/WD83C690 based ethernet
@@ -67,7 +67,6 @@
 #endif
 
 #include <net/bpf.h>
-#include <net/bridge.h>
 
 #include <machine/md_var.h>
 
@@ -2810,26 +2809,9 @@
 	eh = mtod(m, struct ether_header *);
 
 	/*
-	 * Don't read in the entire packet if we know we're going to drop it
-	 * and no bpf is active.
+	 * Get packet, including link layer address, from interface.
 	 */
-	if (!ifp->if_bpf && BDG_ACTIVE( (ifp) ) ) {
-		struct ifnet *bif;
-
-		ed_ring_copy(sc, buf, (char *)eh, ETHER_HDR_LEN);
-		bif = bridge_in_ptr(ifp, eh) ;
-		if (bif == BDG_DROP) {
-			m_freem(m);
-			return;
-		}
-		if (len > ETHER_HDR_LEN)
-			ed_ring_copy(sc, buf + ETHER_HDR_LEN,
-				(char *)(eh + 1), len - ETHER_HDR_LEN);
-	} else
-		/*
-		 * Get packet, including link layer address, from interface.
-		 */
-		ed_ring_copy(sc, buf, (char *)eh, len);
+	ed_ring_copy(sc, buf, (char *)eh, len);
 
 	m->m_pkthdr.len = m->m_len = len;
 

==== //depot/projects/nsched/sys/dev/firewire/sbp.c#6 (text+ko) ====

@@ -31,7 +31,7 @@
  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  * 
- * $FreeBSD: src/sys/dev/firewire/sbp.c,v 1.79 2004/07/20 04:49:44 simokawa Exp $
+ * $FreeBSD: src/sys/dev/firewire/sbp.c,v 1.80 2004/09/06 20:42:34 simokawa Exp $
  *
  */
 
@@ -2787,6 +2787,7 @@
 	if (ocb == NULL) {
 		sdev->flags |= ORB_SHORTAGE;
 		printf("ocb shortage!!!\n");
+		splx(s);
 		return NULL;
 	}
 	STAILQ_REMOVE_HEAD(&sdev->free_ocbs, ocb);

==== //depot/projects/nsched/sys/kern/kern_event.c#7 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_event.c,v 1.79 2004/08/16 03:08:38 green Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_event.c,v 1.80 2004/09/06 19:02:42 jmg Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -334,9 +334,6 @@
 {
 	struct proc *p;
 
-	if (kn->kn_status & KN_DETACHED)
-		return;
-
 	p = kn->kn_ptr.p_proc;
 	knlist_remove(&p->p_klist, kn, 0);
 	kn->kn_ptr.p_proc = NULL;
@@ -859,7 +856,8 @@
 	} else if (kev->flags & EV_DELETE) {
 		kn->kn_status |= KN_INFLUX;
 		KQ_UNLOCK(kq);
-		kn->kn_fop->f_detach(kn);
+		if (!(kn->kn_status & KN_DETACHED))
+			kn->kn_fop->f_detach(kn);
 		knote_drop(kn, td);
 		goto done;
 	}
@@ -1158,7 +1156,8 @@
 			 * it _INFLUX.
 			 */
 			*kevp = kn->kn_kevent;
-			kn->kn_fop->f_detach(kn);
+			if (!(kn->kn_status & KN_DETACHED))
+				kn->kn_fop->f_detach(kn);
 			knote_drop(kn, td);
 			KQ_LOCK(kq);
 			kn = NULL;
@@ -1357,7 +1356,8 @@
 			    ("KN_INFLUX set when not suppose to be"));
 			kn->kn_status |= KN_INFLUX;
 			KQ_UNLOCK(kq);
-			kn->kn_fop->f_detach(kn);
+			if (!(kn->kn_status & KN_DETACHED))
+				kn->kn_fop->f_detach(kn);
 			knote_drop(kn, td);
 			KQ_LOCK(kq);
 		}
@@ -1369,7 +1369,8 @@
 				    ("KN_INFLUX set when not suppose to be"));
 				kn->kn_status |= KN_INFLUX;
 				KQ_UNLOCK(kq);
-				kn->kn_fop->f_detach(kn);
+				if (!(kn->kn_status & KN_DETACHED))
+					kn->kn_fop->f_detach(kn);
 				knote_drop(kn, td);
 				KQ_LOCK(kq);
 			}
@@ -1672,7 +1673,8 @@
 			}
 			kn->kn_status |= KN_INFLUX;
 			KQ_UNLOCK(kq);
-			kn->kn_fop->f_detach(kn);
+			if (!(kn->kn_status & KN_DETACHED))
+				kn->kn_fop->f_detach(kn);
 			knote_drop(kn, td);
 			influx = 1;
 			KQ_LOCK(kq);

==== //depot/projects/nsched/sys/kern/kern_switch.c#13 (text+ko) ====

@@ -86,7 +86,7 @@
 ***/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_switch.c,v 1.87 2004/09/06 07:23:14 julian Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_switch.c,v 1.88 2004/09/07 06:38:22 julian Exp $");
 
 #include "opt_sched.h"
 
@@ -342,9 +342,9 @@
 		 * Totally ignore the ksegrp run queue.
 		 */
 		if (kg->kg_avail_opennings != 1) {
-			if (limitcount < 100) {
+			if (limitcount < 1) {
 				limitcount++;
-				printf("pid %d: bad slot count (%d)\n",
+				printf("pid %d: corrected slot count (%d->1)\n",
 				    td->td_proc->p_pid, kg->kg_avail_opennings);
 
 			}

==== //depot/projects/nsched/sys/kern/kern_thr.c#16 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_thr.c,v 1.25 2004/09/05 02:09:53 julian Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_thr.c,v 1.26 2004/09/07 06:33:39 julian Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -48,11 +48,15 @@
 extern int max_threads_per_proc;
 extern int max_groups_per_proc;
 
+SYSCTL_DECL(_kern_threads);
 static int thr_scope_sys = 0;
-SYSCTL_DECL(_kern_threads);
 SYSCTL_INT(_kern_threads, OID_AUTO, thr_scope_sys, CTLFLAG_RW,
 	&thr_scope_sys, 0, "sys or proc scope scheduling");
 
+static int thr_concurency = 0;
+SYSCTL_INT(_kern_threads, OID_AUTO, thr_concurrency, CTLFLAG_RW,
+	&thr_concurrency, 0, "a concurrency value if not default");
+
 /*
  * Back end support functions.
  */
@@ -133,7 +137,8 @@
 			sched_init_concurrency(newkg);
 	} else {
 		if ((td->td_proc->p_flag & P_HADTHREADS) == 0) {
-			sched_set_concurrency(kg, mp_ncpus);
+			sched_set_concurrency(kg,
+			    thr_concurrency ? thr_concurrency : (2*mp_ncpus));
 		}
 	}
 			

==== //depot/projects/nsched/sys/kern/subr_witness.c#6 (text+ko) ====

@@ -82,7 +82,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.178 2004/08/04 20:31:19 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/subr_witness.c,v 1.179 2004/09/06 23:27:28 jmg Exp $");
 
 #include "opt_ddb.h"
 #include "opt_witness.h"
@@ -192,6 +192,7 @@
 #endif
 
 MALLOC_DEFINE(M_WITNESS, "witness", "witness structure");
+SYSCTL_NODE(_debug, OID_AUTO, witness, CTLFLAG_RW, 0, "Witness Locking");
 
 /*
  * If set to 0, witness is disabled.  If set to 1, witness performs full lock
@@ -204,7 +205,8 @@
  */
 static int witness_watch = 1;
 TUNABLE_INT("debug.witness_watch", &witness_watch);
-SYSCTL_PROC(_debug, OID_AUTO, witness_watch, CTLFLAG_RW | CTLTYPE_INT, NULL, 0,
+TUNABLE_INT("debug.witness.watch", &witness_watch);
+SYSCTL_PROC(_debug_witness, OID_AUTO, watch, CTLFLAG_RW | CTLTYPE_INT, NULL, 0,
     sysctl_debug_witness_watch, "I", "witness is watching lock operations");
 
 #ifdef KDB
@@ -220,7 +222,8 @@
 int	witness_kdb = 0;
 #endif
 TUNABLE_INT("debug.witness_kdb", &witness_kdb);
-SYSCTL_INT(_debug, OID_AUTO, witness_kdb, CTLFLAG_RW, &witness_kdb, 0, "");
+TUNABLE_INT("debug.witness.kdb", &witness_kdb);
+SYSCTL_INT(_debug_witness, OID_AUTO, kdb, CTLFLAG_RW, &witness_kdb, 0, "");
 
 /*
  * When KDB is enabled and witness_trace is set to 1, it will cause the system
@@ -230,7 +233,8 @@
  */
 int	witness_trace = 1;
 TUNABLE_INT("debug.witness_trace", &witness_trace);
-SYSCTL_INT(_debug, OID_AUTO, witness_trace, CTLFLAG_RW, &witness_trace, 0, "");
+TUNABLE_INT("debug.witness.trace", &witness_trace);
+SYSCTL_INT(_debug_witness, OID_AUTO, trace, CTLFLAG_RW, &witness_trace, 0, "");
 #endif /* KDB */
 
 #ifdef WITNESS_SKIPSPIN
@@ -239,8 +243,9 @@
 int	witness_skipspin = 0;
 #endif
 TUNABLE_INT("debug.witness_skipspin", &witness_skipspin);
-SYSCTL_INT(_debug, OID_AUTO, witness_skipspin, CTLFLAG_RDTUN, &witness_skipspin, 0,
-    "");
+TUNABLE_INT("debug.witness.skipspin", &witness_skipspin);
+SYSCTL_INT(_debug_witness, OID_AUTO, skipspin, CTLFLAG_RDTUN,
+    &witness_skipspin, 0, "");
 
 static struct mtx w_mtx;
 static struct witness_list w_free = STAILQ_HEAD_INITIALIZER(w_free);

==== //depot/projects/nsched/sys/net/if.c#11 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)if.c	8.5 (Berkeley) 1/9/95
- * $FreeBSD: src/sys/net/if.c,v 1.204 2004/09/02 05:07:29 brooks Exp $
+ * $FreeBSD: src/sys/net/if.c,v 1.205 2004/09/06 19:02:42 jmg Exp $
  */
 
 #include "opt_compat.h"
@@ -219,9 +219,6 @@
 {
 	struct knlist *klist = (struct knlist *)kn->kn_hook;
 
-	if (kn->kn_status & KN_DETACHED)
-		return;
-
 	knlist_remove(klist, kn, 0);
 }
 

==== //depot/projects/nsched/sys/netgraph/ng_pptpgre.c#4 (text+ko) ====

@@ -36,7 +36,7 @@
  *
  * Author: Archie Cobbs <archie@freebsd.org>
  *
- * $FreeBSD: src/sys/netgraph/ng_pptpgre.c,v 1.33 2004/05/29 00:51:11 julian Exp $
+ * $FreeBSD: src/sys/netgraph/ng_pptpgre.c,v 1.34 2004/09/06 19:53:58 glebius Exp $
  * $Whistle: ng_pptpgre.c,v 1.7 1999/12/08 00:10:06 archie Exp $
  */
 
@@ -119,7 +119,7 @@
 #define PPTP_XMIT_WIN		16			/* max xmit window */
 #define PPTP_MIN_RTT		(PPTP_TIME_SCALE / 10)	/* 100 milliseconds */
 #define PPTP_MIN_TIMEOUT	(PPTP_TIME_SCALE / 83)	/* 12 milliseconds */
-#define PPTP_MAX_TIMEOUT	(1 * PPTP_TIME_SCALE)	/* 1 second */
+#define PPTP_MAX_TIMEOUT	(3 * PPTP_TIME_SCALE)	/* 3 seconds */
 
 /* When we recieve a packet, we wait to see if there's an outgoing packet
    we can piggy-back the ACK off of. These parameters determine the mimimum



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200409070702.i8772lh2013338>