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