git: kernel - Fix numerous MP issues with sockbuf's and ssb_flags part 1/2
Matthew Dillon
dillon at crater.dragonflybsd.org
Mon Sep 6 13:37:00 PDT 2010
commit 14343ad3b815bafa1bcec3656de2d614fcc75bec
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Mon Sep 6 13:34:01 2010 -0700
kernel - Fix numerous MP issues with sockbuf's and ssb_flags part 1/2
* Use atomic ops for ssb_flags handling
* Use atomic_cmpset_int() to interlock SSB_LOCK with SSB_WANT, and
SSB_WAIT with SSB_WAKEUP.
Note in particular that WAIT/WAKEUP assumes the client side of the
socket is single threaded via an appropriate lock. This needs more
work.
Summary of changes:
sys/kern/sys_socket.c | 8 +-
sys/kern/uipc_msg.c | 2 +-
sys/kern/uipc_socket.c | 43 +++++++++------
sys/kern/uipc_socket2.c | 110 ++++++++++++++++++++++++++++++-------
sys/kern/uipc_usrreq.c | 4 +-
sys/kern/vfs_aio.c | 14 +++--
sys/net/accf_data/accf_data.c | 2 +-
sys/net/accf_http/accf_http.c | 10 ++--
sys/netgraph/ksocket/ng_ksocket.c | 12 ++--
sys/netinet/tcp_input.c | 4 +-
sys/netinet/tcp_output.c | 4 +-
sys/netinet/tcp_usrreq.c | 4 +-
sys/netproto/smb/smb_trantcp.c | 10 ++--
sys/sys/socketvar.h | 80 ++++++++++++++++-----------
sys/sys/socketvar2.h | 40 ++++++++++----
sys/vfs/nfs/nfs_socket.c | 4 +-
sys/vfs/nfs/nfs_syscalls.c | 8 +-
sys/vfs/portal/portal_vnops.c | 4 +-
18 files changed, 238 insertions(+), 125 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/14343ad3b815bafa1bcec3656de2d614fcc75bec
--
DragonFly BSD source repository
More information about the Commits
mailing list