DragonFly commits List (threaded) for 2007-05
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
cvs commit: src/sys/kern lwkt_msgport.c lwkt_thread.c src/sys/sys msgport.h msgport2.h src/sys/dev/acpica5/Osd OsdSchedule.c src/sys/net netisr.c src/sys/netinet tcp_syncache.c tcp_usrreq.c
dillon 2007/05/23 22:51:29 PDT
DragonFly src repository
Modified files:
sys/kern lwkt_msgport.c lwkt_thread.c
sys/sys msgport.h msgport2.h
sys/dev/acpica5/Osd OsdSchedule.c
sys/net netisr.c
sys/netinet tcp_syncache.c tcp_usrreq.c
Log:
LWKT message ports contain a number of function pointers which abstract
their backend operation.
* Add a new function, mp_getport(), which takes over the functionality
of lwkt_getport().
* Formalize the default backend and rename it the 'thread' port backend, used
when a message port will only be drained by a single thread. This backend
is able to use critical sections and IPI messages to handle races.
* Fix a small timing window in the thread port backend where replying a
synchronous message request from a different cpu may fail to wake up
the originator who is waiting for the message completion.
* Abstract-out the message port initialization code and clean up related
code pollution.
* Add a new backend called the 'spin' port backend. This backend can be
used if a message port might be drained by several different threads.
For example, this would allow us to use a message port as part of a
file pointer / file descriptor construct.
* Add a boot-time tunable, lwkt.use_spin_port (defaults to off) which
forces spin ports to be used instead of thread ports for the per-thread
message port. This is used only for debugging.
Revision Changes Path
1.41 +458 -121 src/sys/kern/lwkt_msgport.c
1.108 +11 -1 src/sys/kern/lwkt_thread.c
1.25 +36 -13 src/sys/sys/msgport.h
1.14 +7 -0 src/sys/sys/msgport2.h
1.9 +1 -2 src/sys/dev/acpica5/Osd/OsdSchedule.c
1.32 +19 -24 src/sys/net/netisr.c
1.31 +1 -1 src/sys/netinet/tcp_syncache.c
1.44 +1 -1 src/sys/netinet/tcp_usrreq.c
http://www.dragonflybsd.org/cvsweb/src/sys/kern/lwkt_msgport.c.diff?r1=1.40&r2=1.41&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/lwkt_thread.c.diff?r1=1.107&r2=1.108&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/msgport.h.diff?r1=1.24&r2=1.25&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/msgport2.h.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/acpica5/Osd/OsdSchedule.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/netisr.c.diff?r1=1.31&r2=1.32&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/tcp_syncache.c.diff?r1=1.30&r2=1.31&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/tcp_usrreq.c.diff?r1=1.43&r2=1.44&f=u
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]