git: kernel - Fix numerous MP issues with sockbuf's and ssb_flag

看板DFBSD_commit作者時間15年前 (2010/09/07 05:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 14343ad3b815bafa1bcec3656de2d614fcc75bec Author: Matthew Dillon <dillon@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
文章代碼(AID): #1CXLQISl (DFBSD_commit)