From owner-svn-src-all@FreeBSD.ORG Mon May 6 16:42:20 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id D75AFF36; Mon, 6 May 2013 16:42:20 +0000 (UTC) (envelope-from andre@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B94FAFFD; Mon, 6 May 2013 16:42:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r46GgKUL072945; Mon, 6 May 2013 16:42:20 GMT (envelope-from andre@svn.freebsd.org) Received: (from andre@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r46GgIWP072931; Mon, 6 May 2013 16:42:18 GMT (envelope-from andre@svn.freebsd.org) Message-Id: <201305061642.r46GgIWP072931@svn.freebsd.org> From: Andre Oppermann Date: Mon, 6 May 2013 16:42:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r250300 - in head/sys: kern net netinet sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 May 2013 16:42:20 -0000 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)