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

Matthew Dillon dillon at crater.dragonflybsd.org
Wed May 23 22:52:12 PDT 2007


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





More information about the Commits mailing list