git: kernel - Major MP work on kq and signal processing

Matthew Dillon dillon at crater.dragonflybsd.org
Tue Nov 1 23:42:45 PDT 2011


commit e2b148c60d04976ee2f7c03874a91216c8c5b4c1
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Tue Nov 1 23:38:42 2011 -0700

    kernel - Major MP work on kq and signal processing
    
    * Remove the global kq_token and move to a per-kq and per-kqlist
      pool token.  This greatly improves postgresql and mysql performance
      on MP systems.
    
    * Adjust signal processing tokens to be per-LWP instead of per-PROC.
      Signal delivery still utilizes a per-proc token but signal distribution
      now uses a per-LWP token, which allows the trap code to only lock the
      LWP when checking for pending signals.
    
      This also significantly improves database performance.
    
    * The socket code also now uses only its per-socket pool token instead
      of kq_token for its kq operations.  kq handles its own tokens.

Summary of changes:
 sys/kern/init_main.c    |    1 +
 sys/kern/kern_event.c   |  132 +++++++++++++++++++++++++++++++++++++++--------
 sys/kern/kern_exit.c    |    2 +
 sys/kern/kern_fork.c    |    1 +
 sys/kern/kern_sig.c     |  120 +++++++++++++++++++++++++++++++++++++-----
 sys/kern/kern_synch.c   |   19 ++++---
 sys/kern/uipc_msg.c     |   16 ++++--
 sys/kern/uipc_socket2.c |    2 -
 sys/sys/event.h         |    2 +-
 sys/sys/eventvar.h      |    3 +
 sys/sys/proc.h          |    1 +
 11 files changed, 249 insertions(+), 50 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/e2b148c60d04976ee2f7c03874a91216c8c5b4c1


-- 
DragonFly BSD source repository





More information about the Commits mailing list