Author: andre
Date: Mon May  6 16:42:18 2013
New Revision: 250300
URL: http://svnweb.freebsd.org/changeset/base/250300

Log:
  Back out r249318, r249320 and r249327 due to a heisenbug most
  likely related to a race condition in the ipi_hash_lock with
  the exact cause currently unknown but under investigation.

Modified:
  head/sys/kern/uipc_socket.c
  head/sys/net/if.c
  head/sys/net/if_llatbl.c
  head/sys/net/if_llatbl.h
  head/sys/net/if_var.h
  head/sys/netinet/in_pcb.h
  head/sys/netinet/in_var.h
  head/sys/netinet/ip_id.c
  head/sys/netinet/ip_input.c
  head/sys/netinet/tcp_subr.c
  head/sys/sys/socketvar.h

Modified: head/sys/kern/uipc_socket.c
==============================================================================
--- head/sys/kern/uipc_socket.c Mon May  6 16:11:53 2013        (r250299)
+++ head/sys/kern/uipc_socket.c Mon May  6 16:42:18 2013        (r250300)
@@ -240,14 +240,14 @@ SYSCTL_INT(_kern_ipc_zero_copy, OID_AUTO
  * accept_mtx locks down per-socket fields relating to accept queues.  See
  * socketvar.h for an annotation of the protected fields of struct socket.
  */
-struct mtx_padalign accept_mtx;
+struct mtx accept_mtx;
 MTX_SYSINIT(accept_mtx, &accept_mtx, "accept", MTX_DEF);
 
 /*
  * so_global_mtx protects so_gencnt, numopensockets, and the per-socket
  * so_gencnt field.
  */
-static struct mtx_padalign so_global_mtx;
+static struct mtx so_global_mtx;
 MTX_SYSINIT(so_global_mtx, &so_global_mtx, "so_glabel", MTX_DEF);
 
 /*

Modified: head/sys/net/if.c
==============================================================================
--- head/sys/net/if.c   Mon May  6 16:11:53 2013        (r250299)
+++ head/sys/net/if.c   Mon May  6 16:42:18 2013        (r250300)
@@ -206,7 +206,7 @@ VNET_DEFINE(struct ifindex_entry *, ifin
  * also to stablize it over long-running ioctls, without introducing priority
  * inversions and deadlocks.
  */
-struct rwlock_padalign ifnet_rwlock;
+struct rwlock ifnet_rwlock;
 struct sx ifnet_sxlock;
 
 /*

Modified: head/sys/net/if_llatbl.c
==============================================================================
--- head/sys/net/if_llatbl.c    Mon May  6 16:11:53 2013        (r250299)
+++ head/sys/net/if_llatbl.c    Mon May  6 16:42:18 2013        (r250300)
@@ -67,7 +67,7 @@ static VNET_DEFINE(SLIST_HEAD(, lltable)
 
 static void vnet_lltable_init(void);
 
-struct rwlock_padalign lltable_rwlock;
+struct rwlock lltable_rwlock;
 RW_SYSINIT(lltable_rwlock, &lltable_rwlock, "lltable_rwlock");
 
 /*

Modified: head/sys/net/if_llatbl.h
==============================================================================
--- head/sys/net/if_llatbl.h    Mon May  6 16:11:53 2013        (r250299)
+++ head/sys/net/if_llatbl.h    Mon May  6 16:42:18 2013        (r250300)
@@ -43,7 +43,7 @@ struct rt_addrinfo;
 struct llentry;
 LIST_HEAD(llentries, llentry);
 
-extern struct rwlock_padalign lltable_rwlock;
+extern struct rwlock lltable_rwlock;
 #define        LLTABLE_RLOCK()         rw_rlock(&lltable_rwlock)
 #define        LLTABLE_RUNLOCK()       rw_runlock(&lltable_rwlock)
 #define        LLTABLE_WLOCK()         rw_wlock(&lltable_rwlock)

Modified: head/sys/net/if_var.h
==============================================================================
--- head/sys/net/if_var.h       Mon May  6 16:11:53 2013        (r250299)
+++ head/sys/net/if_var.h       Mon May  6 16:42:18 2013        (r250300)
@@ -191,9 +191,9 @@ struct ifnet {
        void    *if_unused[2];
        void    *if_afdata[AF_MAX];
        int     if_afdata_initialized;
+       struct  rwlock if_afdata_lock;
        struct  task if_linktask;       /* task for link change events */
-       struct  rwlock_padalign if_afdata_lock;
-       struct  rwlock_padalign if_addr_lock;   /* lock to protect address 
lists */
+       struct  rwlock if_addr_lock;    /* lock to protect address lists */
 
        LIST_ENTRY(ifnet) if_clones;    /* interfaces of a cloner */
        TAILQ_HEAD(, ifg_list) if_groups; /* linked list of groups per if */
@@ -832,7 +832,7 @@ struct ifmultiaddr {
 
 #ifdef _KERNEL
 
-extern struct rwlock_padalign ifnet_rwlock;
+extern struct rwlock ifnet_rwlock;
 extern struct sx ifnet_sxlock;
 
 #define        IFNET_LOCK_INIT() do {                                          
\

Modified: head/sys/netinet/in_pcb.h
==============================================================================
--- head/sys/netinet/in_pcb.h   Mon May  6 16:11:53 2013        (r250299)
+++ head/sys/netinet/in_pcb.h   Mon May  6 16:42:18 2013        (r250300)
@@ -330,7 +330,7 @@ struct inpcbinfo {
        /*
         * Global lock protecting non-pcbgroup hash lookup tables.
         */
-       struct rwlock_padalign   ipi_hash_lock;
+       struct rwlock            ipi_hash_lock;
 
        /*
         * Global hash of inpcbs, hashed by local and foreign addresses and

Modified: head/sys/netinet/in_var.h
==============================================================================
--- head/sys/netinet/in_var.h   Mon May  6 16:11:53 2013        (r250299)
+++ head/sys/netinet/in_var.h   Mon May  6 16:42:18 2013        (r250300)
@@ -116,7 +116,7 @@ VNET_DECLARE(u_long, in_ifaddrhmask);               /
 #define INADDR_HASH(x) \
        (&V_in_ifaddrhashtbl[INADDR_HASHVAL(x) & V_in_ifaddrhmask])
 
-extern struct rwlock_padalign in_ifaddr_lock;
+extern struct rwlock in_ifaddr_lock;
 
 #define        IN_IFADDR_LOCK_ASSERT() rw_assert(&in_ifaddr_lock, RA_LOCKED)
 #define        IN_IFADDR_RLOCK()       rw_rlock(&in_ifaddr_lock)

Modified: head/sys/netinet/ip_id.c
==============================================================================
--- head/sys/netinet/ip_id.c    Mon May  6 16:11:53 2013        (r250299)
+++ head/sys/netinet/ip_id.c    Mon May  6 16:42:18 2013        (r250300)
@@ -97,7 +97,7 @@ static int             array_ptr = 0;
 static int              array_size = 8192;
 static int              random_id_collisions = 0;
 static int              random_id_total = 0;
-static struct mtx_padalign  ip_id_mtx;
+static struct mtx       ip_id_mtx;
 
 static void    ip_initid(void);
 static int     sysctl_ip_id_change(SYSCTL_HANDLER_ARGS);

Modified: head/sys/netinet/ip_input.c
==============================================================================
--- head/sys/netinet/ip_input.c Mon May  6 16:11:53 2013        (r250299)
+++ head/sys/netinet/ip_input.c Mon May  6 16:42:18 2013        (r250300)
@@ -85,7 +85,7 @@ __FBSDID("$FreeBSD$");
 CTASSERT(sizeof(struct ip) == 20);
 #endif
 
-struct rwlock_padalign in_ifaddr_lock;
+struct rwlock in_ifaddr_lock;
 RW_SYSINIT(in_ifaddr_lock, &in_ifaddr_lock, "in_ifaddr_lock");
 
 VNET_DEFINE(int, rsvp_on);
@@ -155,7 +155,7 @@ VNET_DEFINE(u_long, in_ifaddrhmask);                /*
 
 static VNET_DEFINE(uma_zone_t, ipq_zone);
 static VNET_DEFINE(TAILQ_HEAD(ipqhead, ipq), ipq[IPREASS_NHASH]);
-static struct mtx_padalign     ipqlock;
+static struct mtx ipqlock;
 
 #define        V_ipq_zone              VNET(ipq_zone)
 #define        V_ipq                   VNET(ipq)

Modified: head/sys/netinet/tcp_subr.c
==============================================================================
--- head/sys/netinet/tcp_subr.c Mon May  6 16:11:53 2013        (r250299)
+++ head/sys/netinet/tcp_subr.c Mon May  6 16:42:18 2013        (r250300)
@@ -255,7 +255,7 @@ static VNET_DEFINE(uma_zone_t, tcpcb_zon
 #define        V_tcpcb_zone                    VNET(tcpcb_zone)
 
 MALLOC_DEFINE(M_TCPLOG, "tcplog", "TCP address and flags print buffers");
-static struct mtx_padalign     isn_mtx;
+static struct mtx isn_mtx;
 
 #define        ISN_LOCK_INIT() mtx_init(&isn_mtx, "isn_mtx", NULL, MTX_DEF)
 #define        ISN_LOCK()      mtx_lock(&isn_mtx)

Modified: head/sys/sys/socketvar.h
==============================================================================
--- head/sys/sys/socketvar.h    Mon May  6 16:11:53 2013        (r250299)
+++ head/sys/sys/socketvar.h    Mon May  6 16:42:18 2013        (r250300)
@@ -133,7 +133,7 @@ struct socket {
  * avoid defining a lock order between listen and accept sockets
  * until such time as it proves to be a good idea.
  */
-extern struct mtx_padalign accept_mtx;
+extern struct mtx accept_mtx;
 #define        ACCEPT_LOCK_ASSERT()            mtx_assert(&accept_mtx, 
MA_OWNED)
 #define        ACCEPT_UNLOCK_ASSERT()          mtx_assert(&accept_mtx, 
MA_NOTOWNED)
 #define        ACCEPT_LOCK()                   mtx_lock(&accept_mtx)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to