DragonFly BSD
DragonFly commits List (threaded) for 2010-10
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel - Fix serious issue w/ smp_invltlb(), plus other issues (3)


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 31 Oct 2010 08:59:58 -0700 (PDT)

commit b4b1a37a911531aa2eab596e4a240a9b403a0dc6
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Sun Oct 31 08:52:00 2010 -0700

    kernel - Fix serious issue w/ smp_invltlb(), plus other issues (3)
    
    * splz() and doreti on both i386 and x86_64 were leaving interrupts
      disabled through calls to e.g. sched_ithd() and IPI function callbacks.
    
      As before this can lead to a deadlock if these functions call
      smp_invltlb() or some other cpu calls smp_invltlb() while these
      functions are spinning on a full IPIQ.
    
    * sti in appropriate places to fix the problem.

Summary of changes:
 sys/platform/pc32/i386/mp_machdep.c   |    1 +
 sys/platform/pc32/isa/ipl.s           |   18 ++++++++--
 sys/platform/pc64/x86_64/ipl.s        |   59 +++++++++++---------------------
 sys/platform/pc64/x86_64/mp_machdep.c |    2 +
 4 files changed, 38 insertions(+), 42 deletions(-)

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


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]