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