git: kernel - Optimize lwp-specific signaling.

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Jan 25 11:20:31 PST 2017


commit a094cc95c3d6615ac48e1e6eb359d5bd96ed4da8
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Jan 25 09:25:40 2017 -0800

    kernel - Optimize lwp-specific signaling.
    
    * Optimize the signal code to remove most instances of needing proc->p_token
      when lwp-specific signals are sent.
    
    * Add a CURSIG_LCK_TRACE() macro which can now return with p_token held, and
      pass the status to postsig() which then consumes it.
    
    * lwpsignal() now tries very hard to avoid acquiring proc->p_token.
    
    * Significantly improves vkernel operation under heavy (vkernel) IPI loads.

Summary of changes:
 sys/kern/kern_sig.c                  | 204 +++++++++++++++++++++++++----------
 sys/kern/kern_synch.c                |   2 +-
 sys/kern/kern_time.c                 |   2 +
 sys/kern/lwkt_token.c                |  15 ---
 sys/platform/pc64/x86_64/trap.c      |   7 +-
 sys/platform/vkernel64/x86_64/trap.c |  12 +--
 sys/sys/signal2.h                    |  22 ++--
 sys/sys/signalvar.h                  |  17 ++-
 sys/sys/systm.h                      |   1 -
 sys/sys/thread.h                     |  30 ------
 sys/vfs/mfs/mfs_vfsops.c             |   4 +-
 sys/vfs/procfs/procfs_ctl.c          |   2 +-
 12 files changed, 193 insertions(+), 125 deletions(-)

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


-- 
DragonFly BSD source repository



More information about the Commits mailing list