summaryrefslogtreecommitdiffstats
path: root/sys/netinet/ip_input.c
diff options
context:
space:
mode:
authorandre <andre@FreeBSD.org>2013-04-09 21:02:20 +0000
committerandre <andre@FreeBSD.org>2013-04-09 21:02:20 +0000
commit306fddaf7801d7fae1206025486e9d9a97f52ad4 (patch)
treee754fcc273d884acf419c8faf5d21332f374104e /sys/netinet/ip_input.c
parentf70f4c314a94a4324c5dc34b2660fd66a18f35b4 (diff)
downloadFreeBSD-src-306fddaf7801d7fae1206025486e9d9a97f52ad4.zip
FreeBSD-src-306fddaf7801d7fae1206025486e9d9a97f52ad4.tar.gz
Change certain heavily used network related mutexes and rwlocks to
reside on their own cache line to prevent false sharing with other nearby structures, especially for those in the .bss segment. NB: Those mutexes and rwlocks with variables next to them that get changed on every invocation do not benefit from their own cache line. Actually it may be net negative because two cache misses would be incurred in those cases.
Diffstat (limited to 'sys/netinet/ip_input.c')
-rw-r--r--sys/netinet/ip_input.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c
index f38c6fa..17a4e1d 100644
--- a/sys/netinet/ip_input.c
+++ b/sys/netinet/ip_input.c
@@ -85,7 +85,7 @@ __FBSDID("$FreeBSD$");
CTASSERT(sizeof(struct ip) == 20);
#endif
-struct rwlock in_ifaddr_lock;
+struct rwlock_padalign 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 ipqlock;
+static struct mtx_padalign ipqlock;
#define V_ipq_zone VNET(ipq_zone)
#define V_ipq VNET(ipq)
OpenPOWER on IntegriCloud