DragonFly commits List (threaded) for 2003-07
cvs commit: src/sys/kern lwkt_msgport.c lwkt_rwlock.c lwkt_thread.c
dillon 2003/07/19 18:37:22 PDT
sys/kern lwkt_rwlock.c lwkt_thread.c
This is the initial implmentation of the LWKT messaging infrastructure.
Messages are sent to message ports and typically replied to a message port
embedded in the originating thread's thread structure (td_msgport).
The port functions match up and optimization client sync/asynch requests
verses target synch/asynch responses.
In this initial implementation a port must be owned by a particular thread,
and we use *asynch* IPI messaging to forward queueing and dequeueing operations
to the correct cpu. Most of the IPI overhead will be absorbed by the fact
that these same IPIs also tend to schedule the threads in question, which on
the correct cpu (which is the one it will be on) costs nothing.
Message ports have in-context dispatch functions for initiating, aborting,
and replying to a message which can be overriden and will queue by default.
This code compiles but is as yet unreferenced, and almost certainly needs more
Revision Changes Path
1.4 +6 -3 src/sys/kern/lwkt_rwlock.c
1.25 +18 -6 src/sys/kern/lwkt_thread.c