Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 12 Jun 2004 20:56:15 GMT
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 54741 for review
Message-ID:  <200406122056.i5CKuFoW001260@repoman.freebsd.org>

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

Change 54741 by rwatson@rwatson_tislabs on 2004/06/12 20:55:44

	Integrate netperf_socket from CVS HEAD from just before the
	merge of reference count locking; pick up reformatting of
	socketvar.h.

Affected files ...

.. //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#11 integrate
.. //depot/projects/netperf_socket/sys/contrib/altq/altq/if_altq.h#2 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/pmap.c#8 integrate
.. //depot/projects/netperf_socket/sys/sys/socketvar.h#10 integrate

Differences ...

==== //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#11 (text+ko) ====

@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.466 2004/06/08 02:20:40 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.467 2004/06/12 20:01:47 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -2200,10 +2200,10 @@
 	pte = pmap_pte(pmap, va);
 	if (wired && (*pte & PG_W) == 0) {
 		pmap->pm_stats.wired_count++;
-		*pte |= PG_W;
+		atomic_set_long(pte, PG_W);
 	} else if (!wired && (*pte & PG_W) != 0) {
 		pmap->pm_stats.wired_count--;
-		*pte &= ~PG_W;
+		atomic_clear_long(pte, PG_W);
 	}
 }
 

==== //depot/projects/netperf_socket/sys/contrib/altq/altq/if_altq.h#2 (text+ko) ====

@@ -1,3 +1,4 @@
+/*	$FreeBSD: src/sys/contrib/altq/altq/if_altq.h,v 1.2 2004/06/12 18:47:24 mlaier Exp $	*/
 /*	$KAME: if_altq.h,v 1.11 2003/07/10 12:07:50 kjc Exp $	*/
 
 /*
@@ -54,6 +55,12 @@
 	struct	mtx ifq_mtx;
 #endif
 
+	/* driver owned queue (used for bulk dequeue and prepend) UNLOCKED */
+	struct	mbuf *ifq_drv_head;
+	struct	mbuf *ifq_drv_tail;
+	int	ifq_drv_len;
+	int	ifq_drv_maxlen;
+
 	/* alternate queueing related fields */
 	int	altq_type;		/* discipline type */
 	int	altq_flags;		/* flags (e.g. ready, in-use) */

==== //depot/projects/netperf_socket/sys/i386/i386/pmap.c#8 (text+ko) ====

@@ -73,7 +73,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.467 2004/05/28 19:42:02 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.468 2004/06/12 20:01:48 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -178,7 +178,8 @@
 #define pmap_pte_u(pte)		((*(int *)pte & PG_A) != 0)
 #define pmap_pte_v(pte)		((*(int *)pte & PG_V) != 0)
 
-#define pmap_pte_set_w(pte, v) ((v)?(*(int *)pte |= PG_W):(*(int *)pte &= ~PG_W))
+#define pmap_pte_set_w(pte, v)	((v) ? atomic_set_int((u_int *)(pte), PG_W) : \
+    atomic_clear_int((u_int *)(pte), PG_W))
 #define pmap_pte_set_prot(pte, v) ((*(int *)pte &= ~PG_PROT), (*(int *)pte |= (v)))
 
 struct pmap kernel_pmap_store;

==== //depot/projects/netperf_socket/sys/sys/socketvar.h#10 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)socketvar.h	8.3 (Berkeley) 2/19/95
- * $FreeBSD: src/sys/sys/socketvar.h,v 1.117 2004/06/12 16:08:41 rwatson Exp $
+ * $FreeBSD: src/sys/sys/socketvar.h,v 1.118 2004/06/12 18:37:29 rwatson Exp $
  */
 
 #ifndef _SYS_SOCKETVAR_H_
@@ -332,47 +332,51 @@
  * still explicitly close the socket, but the last ref count will free
  * the structure.
  */
-#define soref(so) do {					\
-	++(so)->so_count;				\
+#define	soref(so) do {							\
+	++(so)->so_count;						\
 } while (0)
 
-#define sorele(so) do {					\
-	SOCK_LOCK_ASSERT(so);				\
-	if ((so)->so_count <= 0)			\
-		panic("sorele");			\
-	if (--(so)->so_count == 0)			\
-		sofree(so);				\
-	else						\
-		SOCK_UNLOCK(so);			\
-	so = NULL;					\
+#define	sorele(so) do {							\
+	SOCK_LOCK_ASSERT(so);						\
+	if ((so)->so_count <= 0)					\
+		panic("sorele");					\
+	if (--(so)->so_count == 0)					\
+		sofree(so);						\
+	else								\
+		SOCK_UNLOCK(so);					\
+	so = NULL;							\
 } while (0)
 
-#define sotryfree(so) do {				\
-	SOCK_LOCK_ASSERT(so);				\
-	if ((so)->so_count == 0)			\
-		sofree(so);				\
-	else						\
-		SOCK_UNLOCK(so);			\
-	so = NULL;					\
+#define	sotryfree(so) do {						\
+	SOCK_LOCK_ASSERT(so);						\
+	if ((so)->so_count == 0)					\
+		sofree(so);						\
+	else								\
+		SOCK_UNLOCK(so);					\
+	so = NULL;							\
+} while(0)
+
+#define	sorwakeup(so) do {						\
+	if (sb_notify(&(so)->so_rcv))					\
+		sowakeup((so), &(so)->so_rcv); 				\
 } while (0)
 
-#define	sorwakeup(so) do {				\
-	if (sb_notify(&(so)->so_rcv))			\
-		sowakeup((so), &(so)->so_rcv);		\
+#define	sorwakeup_locked(so) do {					\
+	if (sb_notify(&(so)->so_rcv))					\
+		sowakeup_locked((so), &(so)->so_rcv);			\
 } while (0)
-#define	sorwakeup_locked(so) do {			\
-	if (sb_notify(&(so)->so_rcv))			\
-		sowakeup_locked((so), &(so)->so_rcv);	\
+
+#define	sowwakeup(so) do {						\
+	if (sb_notify(&(so)->so_snd))					\
+		sowakeup((so), &(so)->so_snd); 				\
 } while (0)
 
-#define	sowwakeup(so) do {				\
-	if (sb_notify(&(so)->so_snd))			\
-		sowakeup((so), &(so)->so_snd);		\
+#define	sowwakeup_locked(so) do {					\
+	if (sb_notify(&(so)->so_snd))					\
+		sowakeup_locked((so), &(so)->so_snd);			\
 } while (0)
-#define	sowwakeup_locked(so)	do {			\
-	if (sb_notify(&(so)->so_snd))			\
-		sowakeup_locked((so), &(so)->so_snd);	\
-} while (0)
+
+#ifdef _KERNEL
 
 /*
  * Argument structure for sosetopt et seq.  This is in the KERNEL



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