cvs commit: src/sys/dev/virtual/net if_vke.c src/sys/kern kern_resource.c uipc_socket.c uipc_socket2.c uipc_usrreq.c src/sys/platform/vkernel/platform init.c src/sys/sys socketvar.h unpcb.h

Matthew Dillon dillon at crater.dragonflybsd.org
Mon May 26 22:27:25 PDT 2008


dillon      2008/05/26 22:25:36 PDT

DragonFly src repository

  Modified files:
    sys/dev/virtual/net  if_vke.c 
    sys/kern             kern_resource.c uipc_socket.c 
                         uipc_socket2.c uipc_usrreq.c 
    sys/platform/vkernel/platform init.c 
    sys/sys              socketvar.h unpcb.h 
  Log:
  Get rid of an old and terrible hack.  Local stream sockets enqueue packets
  directly on the peer's sockbuf, rather then the sender's sockbuf.  That
  part of the code is fine, but in order to prevent the sender from queueing
  infinite mbufs (because its sockbuf appears to be empty when you do that)
  the code dynamically messed around with the sender's high water mark.
  
  This blew up the new SOCK_SEQPACKET.  In particular, it blows up the
  use of the PR_ATOMIC on stream sockets and can cause spurious EMSGSIZE
  errors to be returned instead of the EWOULDBLOCK that should have been
  returned.
  
  Also fix, or partially the resource limit code which tries to reduce the
  high water mark when a user is using too many mbufs.  This never worked
  well and still doesn't, but it is in better shape now.
  
  Get rid of the crufty code and simply add a flag to the signalsockbuf,
  SSB_STOP, to stop the sender.
  
  Also adjust the vkernel to increase the default socket buffer when
  connecting to vknet instead of if_tap.  VKE currently issues non-blocking
  writes to vknet/tap and we do not want to lose packets for no good reason.
  
  Revision  Changes    Path
  1.9       +8 -2      src/sys/dev/virtual/net/if_vke.c
  1.35      +13 -4     src/sys/kern/kern_resource.c
  1.48      +4 -3      src/sys/kern/uipc_socket.c
  1.31      +1 -1      src/sys/kern/uipc_socket2.c
  1.41      +22 -28    src/sys/kern/uipc_usrreq.c
  1.55      +5 -0      src/sys/platform/vkernel/platform/init.c
  1.31      +18 -4     src/sys/sys/socketvar.h
  1.5       +2 -2      src/sys/sys/unpcb.h


http://www.dragonflybsd.org/cvsweb/src/sys/dev/virtual/net/if_vke.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_resource.c.diff?r1=1.34&r2=1.35&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_socket.c.diff?r1=1.47&r2=1.48&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_socket2.c.diff?r1=1.30&r2=1.31&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_usrreq.c.diff?r1=1.40&r2=1.41&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/vkernel/platform/init.c.diff?r1=1.54&r2=1.55&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/socketvar.h.diff?r1=1.30&r2=1.31&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/unpcb.h.diff?r1=1.4&r2=1.5&f=u





More information about the Commits mailing list