PERFORCE change 54741 for review
Robert Watson
rwatson at FreeBSD.org
Sat Jun 12 20:56:26 GMT 2004
http://perforce.freebsd.org/chv.cgi?CH=54741
Change 54741 by rwatson at 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
More information about the p4-projects
mailing list