svn commit: r250300 - in head/sys: kern net netinet sys
Andre Oppermann
andre at FreeBSD.org
Mon May 6 16:42:20 UTC 2013
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)
More information about the svn-src-all
mailing list