git: kernel - Fix syscons deadlock during panic

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Jun 26 14:52:33 PDT 2015


commit 539fbd92996b1ec2a93228c56a318b53fa514df1
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri Jun 26 14:05:40 2015 -0700

    kernel - Fix syscons deadlock during panic
    
    * The system console can deadlock during a panic if a cpu is stopped
      while holding syscons_mtx.
    
    * The new asynchronous update thread makes this problem more likely to occur.
    
    * Fix the problem by recoding syscons_lock() to detect the panic or shutdown
      condition and loop for up to 0.5 seconds trying to get the syscons_mtx.
      If it is unable to acquire it, it reinitializes the mutex.
    
    * We still have issues with VT switching away from X.

Summary of changes:
 sys/dev/misc/syscons/sckmsrndr.c   |  4 +-
 sys/dev/misc/syscons/scterm-dumb.c |  4 +-
 sys/dev/misc/syscons/scterm-sc.c   |  4 +-
 sys/dev/misc/syscons/scterm.c      |  6 ++-
 sys/dev/misc/syscons/sctermvar.h   | 32 +++++++++++----
 sys/dev/misc/syscons/scvgarndr.c   |  2 -
 sys/dev/misc/syscons/syscons.c     | 82 +++++++++++++++++++++++++++-----------
 7 files changed, 95 insertions(+), 39 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/539fbd92996b1ec2a93228c56a318b53fa514df1


-- 
DragonFly BSD source repository



More information about the Commits mailing list