cvs commit: src/sys/kern kern_sig.c kern_synch.c lwkt_msgport.c uipc_msg.c uipc_syscalls.c src/sys/sys msgport.h msgport2.h systm.h src/sys/net netisr.c route.c src/sys/netinet if_ether.c tcp_usrreq.c

Matthew Dillon dillon at crater.dragonflybsd.org
Thu May 24 13:52:22 PDT 2007


dillon      2007/05/24 13:51:22 PDT

DragonFly src repository

  Modified files:
    sys/kern             kern_sig.c kern_synch.c lwkt_msgport.c 
                         uipc_msg.c uipc_syscalls.c 
    sys/sys              msgport.h msgport2.h systm.h 
    sys/net              netisr.c route.c 
    sys/netinet          if_ether.c tcp_usrreq.c 
  Log:
  Add lwkt_sleep() to formalize a shortcut numerous bits of code have been
  using for a while, which is to directly deschedule oneself and switch away.
  This method of blocking requires a direct lwkt_schedule() call to reschedule
  the thread and is primarily used by the message port abstraction.
  
  Change the psignal code to check TDF_SINTR in the thread flags instead
  of checking MSGPORTF_WAITING in the thread's private message port.
  
  The lwkt_waitmsg() and lwkt_waitport() functions use the same msgport
  backend function (mp_waitport).  Separate the backend into two functions,
  mp_waitport and mp_waitmsg, and allow tsleep flags to be passed in instead
  of flagging interruptability in the lwkt_msg flags.
  
  Optimize the lwkt_waitmsg() backends - in the fully synchronous critical
  path case no critical sections or spinlocks are required at all.
  
  Revision  Changes    Path
  1.78      +6 -2      src/sys/kern/kern_sig.c
  1.85      +40 -0     src/sys/kern/kern_synch.c
  1.42      +163 -142  src/sys/kern/lwkt_msgport.c
  1.18      +20 -20    src/sys/kern/uipc_msg.c
  1.82      +4 -4      src/sys/kern/uipc_syscalls.c
  1.26      +7 -12     src/sys/sys/msgport.h
  1.15      +10 -10    src/sys/sys/msgport2.h
  1.71      +1 -0      src/sys/sys/systm.h
  1.33      +2 -2      src/sys/net/netisr.c
  1.30      +2 -2      src/sys/net/route.c
  1.38      +1 -1      src/sys/netinet/if_ether.c
  1.45      +1 -1      src/sys/netinet/tcp_usrreq.c


http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_sig.c.diff?r1=1.77&r2=1.78&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_synch.c.diff?r1=1.84&r2=1.85&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/lwkt_msgport.c.diff?r1=1.41&r2=1.42&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_msg.c.diff?r1=1.17&r2=1.18&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_syscalls.c.diff?r1=1.81&r2=1.82&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/msgport.h.diff?r1=1.25&r2=1.26&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/msgport2.h.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/systm.h.diff?r1=1.70&r2=1.71&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/netisr.c.diff?r1=1.32&r2=1.33&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/route.c.diff?r1=1.29&r2=1.30&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/if_ether.c.diff?r1=1.37&r2=1.38&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/tcp_usrreq.c.diff?r1=1.44&r2=1.45&f=u





More information about the Commits mailing list