Date: Sun, 21 Oct 2012 11:16:17 +0000 (UTC) From: Andre Oppermann <andre@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r241802 - in user/andre/tcp_workqueue/sys: kern sys Message-ID: <201210211116.q9LBGHv8059338@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: andre Date: Sun Oct 21 11:16:16 2012 New Revision: 241802 URL: http://svn.freebsd.org/changeset/base/241802 Log: Simplify cache line alignment of global mutexes and remove the unnecessary MTX_GLB() accessor macro again. Suggested by: glebius Modified: user/andre/tcp_workqueue/sys/kern/uipc_socket.c user/andre/tcp_workqueue/sys/sys/mutex.h Modified: user/andre/tcp_workqueue/sys/kern/uipc_socket.c ============================================================================== --- user/andre/tcp_workqueue/sys/kern/uipc_socket.c Sun Oct 21 10:19:07 2012 (r241801) +++ user/andre/tcp_workqueue/sys/kern/uipc_socket.c Sun Oct 21 11:16:16 2012 (r241802) @@ -215,8 +215,8 @@ MTX_SYSINIT(accept_mtx, &accept_mtx, "ac * so_global_mtx protects so_gencnt, numopensockets, and the per-socket * so_gencnt field. */ -MTX_GLOBAL_STATIC(so_global_mtx); -MTX_SYSINIT(so_global_mtx, MTX_GLB(so_global_mtx), "so_glabel", MTX_DEF); +static MTX_GLOBAL(so_global_mtx); +MTX_SYSINIT(so_global_mtx, &so_global_mtx, "so_glabel", MTX_DEF); /* * General IPC sysctl name space, used by sockets and a variety of other IPC @@ -324,7 +324,7 @@ soalloc(struct vnet *vnet) sx_init(&so->so_snd.sb_sx, "so_snd_sx"); sx_init(&so->so_rcv.sb_sx, "so_rcv_sx"); TAILQ_INIT(&so->so_aiojobq); - mtx_lock(MTX_GLB(so_global_mtx)); + mtx_lock(&so_global_mtx); so->so_gencnt = ++so_gencnt; ++numopensockets; #ifdef VIMAGE @@ -333,7 +333,7 @@ soalloc(struct vnet *vnet) vnet->vnet_sockcnt++; so->so_vnet = vnet; #endif - mtx_unlock(MTX_GLB(so_global_mtx)); + mtx_unlock(&so_global_mtx); return (so); } @@ -349,7 +349,7 @@ sodealloc(struct socket *so) KASSERT(so->so_count == 0, ("sodealloc(): so_count %d", so->so_count)); KASSERT(so->so_pcb == NULL, ("sodealloc(): so_pcb != NULL")); - mtx_lock(MTX_GLB(so_global_mtx)); + mtx_lock(&so_global_mtx); so->so_gencnt = ++so_gencnt; --numopensockets; /* Could be below, but faster here. */ #ifdef VIMAGE @@ -357,7 +357,7 @@ sodealloc(struct socket *so) __func__, __LINE__, so)); so->so_vnet->vnet_sockcnt--; #endif - mtx_unlock(MTX_GLB(so_global_mtx)); + mtx_unlock(&so_global_mtx); if (so->so_rcv.sb_hiwat) (void)chgsbsize(so->so_cred->cr_uidinfo, &so->so_rcv.sb_hiwat, 0, RLIM_INFINITY); Modified: user/andre/tcp_workqueue/sys/sys/mutex.h ============================================================================== --- user/andre/tcp_workqueue/sys/sys/mutex.h Sun Oct 21 10:19:07 2012 (r241801) +++ user/andre/tcp_workqueue/sys/sys/mutex.h Sun Oct 21 11:16:16 2012 (r241802) @@ -414,30 +414,15 @@ struct mtx_args { /* * Helper macros to prevent global mutexes to share a cache line * on SMP systems. - * MTX_GLB(name) abstracts the access to the structure encapsulated - * mutexes. */ #ifdef SMP #define MTX_GLOBAL(name) \ - struct { \ - struct mtx (name); \ - } __aligned(CACHE_LINE_SIZE) (name) + struct mtx __aligned(CACHE_LINE_SIZE) (name) -#define MTX_GLOBAL_STATIC(name) \ - static struct { \ - struct mtx (name); \ - } __aligned(CACHE_LINE_SIZE) (name) #else /* SMP */ #define MTX_GLOBAL(name) \ - struct { \ - struct mtx (name); \ - } (name) -#define MTX_GLOBAL_STATIC(name) \ - static struct { \ - struct mtx (name); \ - } (name) + struct mtx (name) #endif /* SMP */ -#define MTX_GLB(name) (&(name.name)) /* * The INVARIANTS-enabled mtx_assert() functionality.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201210211116.q9LBGHv8059338>