cvs commit: src/sys/amd64/include segments.h src/sys/bus/pci pci.c pci_compat.c src/sys/bus/pci/i386 pci_cfgreg.c src/sys/i386/apic apic_ipl.h apic_ipl.s apic_vector.s mpapic.c mpapic.h src/sys/i386/conf GENERIC src/sys/i386/i386 autoconf.c globals.s ...

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Nov 4 00:59:11 PST 2005


dillon      2005/11/04 00:57:31 PST

DragonFly src repository

  Modified files:
    sys/amd64/include    segments.h 
    sys/bus/pci          pci.c pci_compat.c 
    sys/bus/pci/i386     pci_cfgreg.c 
    sys/i386/apic        apic_ipl.h apic_ipl.s apic_vector.s 
                         mpapic.c mpapic.h 
    sys/i386/conf        GENERIC 
    sys/i386/i386        autoconf.c globals.s machdep.c 
                         mp_machdep.c nexus.c pmap.c pmap_inval.c 
                         sys_machdep.c tls.c trap.c vm_machdep.c 
    sys/i386/icu         icu_abi.c icu_ipl.h icu_ipl.s 
                         icu_vector.s 
    sys/i386/include     ipl.h segments.h smp.h 
    sys/i386/isa         clock.c intr_machdep.c intr_machdep.h 
                         npx.c 
  Log:
  Allow 'options SMP' *WITHOUT* 'options APIC_IO'.  That is, an ability to
  produce an SMP-capable kernel that uses the PIC/ICU instead of the IO APICs
  for interrupt routing.
  
  SMP boxes with broken BIOSes (namely my Shuttle XPC SN95G5) could very well
  have serious interrupt routing problems when operating in IO APIC mode.
  One solution is to not use the IO APICs.  That is, to run only the Local
  APICs for the SMP management.
  
  * Don't conditionalize NIDT.  Just set it to 256
  
  * Make the ICU interrupt code MP SAFE.  This primarily means using the
    imen_spinlock to protect accesses to icu_imen.
  
  * When running SMP without APIC_IO, set the LAPIC TPR to prevent unintentional
    interrupts.  Leave LINT0 enabled (normally with APIC_IO LINT0 is disabled
    when the IO APICs are activated).  LINT0 is the virtual wire between the
    8259 and LAPIC 0.
  
  * Get rid of NRSVIDT.  Just use IDT_OFFSET instead.
  
  * Clean up all the APIC_IO tests which should have been SMP tests, and all
    the SMP tests which should have been APIC_IO tests.  Explicitly #ifdef
    out all code related to the IO APICs when APIC_IO is not set.
  
  Revision  Changes    Path
  1.2       +3 -7      src/sys/amd64/include/segments.h
  1.29      +5 -4      src/sys/bus/pci/pci.c
  1.10      +1 -4      src/sys/bus/pci/pci_compat.c
  1.11      +0 -3      src/sys/bus/pci/i386/pci_cfgreg.c
  1.7       +5 -6      src/sys/i386/apic/apic_ipl.h
  1.16      +4 -4      src/sys/i386/apic/apic_ipl.s
  1.30      +21 -10    src/sys/i386/apic/apic_vector.s
  1.15      +23 -7     src/sys/i386/apic/mpapic.c
  1.9       +2 -0      src/sys/i386/apic/mpapic.h
  1.30      +5 -1      src/sys/i386/conf/GENERIC
  1.23      +0 -4      src/sys/i386/i386/autoconf.c
  1.24      +1 -1      src/sys/i386/i386/globals.s
  1.82      +1 -102    src/sys/i386/i386/machdep.c
  1.46      +73 -18    src/sys/i386/i386/mp_machdep.c
  1.22      +0 -2      src/sys/i386/i386/nexus.c
  1.51      +1 -3      src/sys/i386/i386/pmap.c
  1.5       +0 -3      src/sys/i386/i386/pmap_inval.c
  1.21      +0 -2      src/sys/i386/i386/sys_machdep.c
  1.3       +0 -2      src/sys/i386/i386/tls.c
  1.65      +0 -2      src/sys/i386/i386/trap.c
  1.38      +0 -2      src/sys/i386/i386/vm_machdep.c
  1.7       +4 -0      src/sys/i386/icu/icu_abi.c
  1.5       +17 -0     src/sys/i386/icu/icu_ipl.h
  1.15      +8 -6      src/sys/i386/icu/icu_ipl.s
  1.24      +7 -0      src/sys/i386/icu/icu_vector.s
  1.9       +0 -3      src/sys/i386/include/ipl.h
  1.10      +3 -7      src/sys/i386/include/segments.h
  1.18      +2 -6      src/sys/i386/include/smp.h
  1.41      +1 -6      src/sys/i386/isa/clock.c
  1.41      +2 -4      src/sys/i386/isa/intr_machdep.c
  1.23      +2 -2      src/sys/i386/isa/intr_machdep.h
  1.29      +1 -1      src/sys/i386/isa/npx.c


http://www.dragonflybsd.org/cvsweb/src/sys/amd64/include/segments.h.diff?r1=1.1&r2=1.2&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/bus/pci/pci.c.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/bus/pci/pci_compat.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/bus/pci/i386/pci_cfgreg.c.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/apic/apic_ipl.h.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/apic/apic_ipl.s.diff?r1=1.15&r2=1.16&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/apic/apic_vector.s.diff?r1=1.29&r2=1.30&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/apic/mpapic.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/apic/mpapic.h.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/conf/GENERIC.diff?r1=1.29&r2=1.30&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/autoconf.c.diff?r1=1.22&r2=1.23&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/globals.s.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/machdep.c.diff?r1=1.81&r2=1.82&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/mp_machdep.c.diff?r1=1.45&r2=1.46&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/nexus.c.diff?r1=1.21&r2=1.22&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/pmap.c.diff?r1=1.50&r2=1.51&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/pmap_inval.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/sys_machdep.c.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/tls.c.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/trap.c.diff?r1=1.64&r2=1.65&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/vm_machdep.c.diff?r1=1.37&r2=1.38&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/icu/icu_abi.c.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/icu/icu_ipl.h.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/icu/icu_ipl.s.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/icu/icu_vector.s.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/include/ipl.h.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/include/segments.h.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/include/smp.h.diff?r1=1.17&r2=1.18&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/isa/clock.c.diff?r1=1.40&r2=1.41&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/isa/intr_machdep.c.diff?r1=1.40&r2=1.41&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/isa/intr_machdep.h.diff?r1=1.22&r2=1.23&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/isa/npx.c.diff?r1=1.28&r2=1.29&f=u





More information about the Commits mailing list