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