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.
This commit is contained in:
andre 2013-05-06 16:42:18 +00:00
parent 1734db112a
commit cc8c6e4d01
11 changed files with 15 additions and 15 deletions

View File

@ -240,14 +240,14 @@ SYSCTL_INT(_kern_ipc_zero_copy, OID_AUTO, send, CTLFLAG_RW,
* 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);
/*

View File

@ -206,7 +206,7 @@ VNET_DEFINE(struct ifindex_entry *, ifindex_table);
* 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;
/*

View File

@ -67,7 +67,7 @@ static VNET_DEFINE(SLIST_HEAD(, lltable), lltables);
static void vnet_lltable_init(void);
struct rwlock_padalign lltable_rwlock;
struct rwlock lltable_rwlock;
RW_SYSINIT(lltable_rwlock, &lltable_rwlock, "lltable_rwlock");
/*

View File

@ -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)

View File

@ -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 { \

View File

@ -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

View File

@ -116,7 +116,7 @@ VNET_DECLARE(u_long, in_ifaddrhmask); /* mask for hash table */
#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)

View File

@ -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);

View File

@ -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); /* mask for hash table */
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)

View File

@ -255,7 +255,7 @@ static VNET_DEFINE(uma_zone_t, tcpcb_zone);
#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)

View File

@ -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)