Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Aug 1997 13:33:21 -0600
From:      Steve Passe <smp@csn.net>
To:        smp@freebsd.org
Subject:   HEADS UP: new INTerrupt algorithms
Message-ID:  <199708291933.NAA08591@Ilsa.StevesCafe.com>

next in thread | raw e-mail | index | archive | help
Hi,

I just committed 2 new algorithmic changes affecting the handling of 
FAST_INTR()s:

  Modified files:
    sys/i386/include     smptests.h 
    sys/i386/i386        exception.s mplock.s simplelock.s 
    sys/i386/isa         apic_ipl.s apic_vector.s intr_machdep.c 
                         intr_machdep.h ipl.s ipl_funcs.c 
 
 1: There was a small window during the MP-safe spl function locking
    where an INT would be steered to a CPU NOT holding the giant lock.
    This caused sever silo overflow problems on systems doing heavy
    serial IO.
    The Task Priority Register value is now raised while spinning
    on the giant lock to a value higher than that used while spinning
    on simple locks, eliminating most cases of this problem.
    Thanx to Dave Adkins for debugging and testing this code.

 2: I reworked the priority levels used for FAST_INTR()s to be above
    those used for all regular (ie INTR()) interrupts.  I also changed
    the mplock code to allow acceptance of FAST_INTR()s while blocking
    acceptance of INTR()s durint the period that a caller of mplock
    is spinning on the giant lock.  This means that 1 CPU can be inside
    the kernel for either a syscall or regular INTR() ISR while another
    CPU can be inside handling an FAST_INTR().

Note that change #2 makes change #1 irrelevant for FAST_INTR()s, but still  
affects steering of regular INTR()s.  Change #1 is built-in.  Change
#2 is controlled by smptests.h: FAST_HI, and is on by default.  You
should cvsup the lasest files and use as is.  If you have deadlock
problens you can turn off FAST_HI to fall back to #1 for both INT types.

I would like feedback as to how these changes affect the silo overflow problem
and sio responsiveness.

--
Steve Passe	| powered by
smp@csn.net	|            Symmetric MultiProcessor FreeBSD





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708291933.NAA08591>