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

Matthew Dillon dillon at crater.dragonflybsd.org
Sun Oct 31 09:01:24 PDT 2010


commit b4b1a37a911531aa2eab596e4a240a9b403a0dc6
Author: Matthew Dillon <dillon at 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





More information about the Commits mailing list