From owner-p4-projects@FreeBSD.ORG Sat Jun 12 20:56:26 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 42BFC16A4D2; Sat, 12 Jun 2004 20:56:26 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1C18A16A4CE for ; Sat, 12 Jun 2004 20:56:26 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1520243D53 for ; Sat, 12 Jun 2004 20:56:26 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i5CKuG8E001263 for ; Sat, 12 Jun 2004 20:56:16 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i5CKuFoW001260 for perforce@freebsd.org; Sat, 12 Jun 2004 20:56:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 12 Jun 2004 20:56:15 GMT Message-Id: <200406122056.i5CKuFoW001260@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 54741 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jun 2004 20:56:26 -0000 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 -__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 -__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