[patch] smp-2.3.40-A3, SMP fixes

From: Ingo Molnar (mingo@chiara.csoma.elte.hu)
Date: Mon Jan 17 2000 - 09:17:04 EST


these are the latest x86 SMP fixes against pre4-2.3.40:

        http://www.redhat.com/~mingo/smp-2.3.40-A3

the patchset fixes 3 different lowlevel SMP problems:

 - fixes the global page flush bug noticed by Mark Giampapa @ IBM. I've
   added a new per-architecture flush_tlb_all_kernel() call, which also
   flushes 'special' kernel-mappings. flush_tlb_all() from now on should
   be regarded as flushing only user-space and normal kernel-space
   mappings. __flush_tlb() is noticeably faster than __flush_tlb_global().
   The two affected places, zap_low_mappings() and flush_all_zero_pkmaps()
   are now using the new flush_tlb_all_kernel() call. I've removed the
   extraneous invlpg in map_new_virtual(), which speeds up kmap(). I've
   tested this change and the previous instability is fixed. This could
   also fix some of the highmem swapping weirdness Christoph Rohland
   reported?

- fixes the IOAPIC ID setting bug noticed by Matt Domsch @ Dell. This
   bugfix has the chance of solving a range of problems reported: the IRQ
   delivery assymetry on some boxes and it might even solve some of the
   boot problems certain boards have? The MP spec requires us to set the
   IO-APIC ID from the MP-table, we did this only for a small set of
   boards.

- Mark Giampapa noticed another bug as well: we were mapping the IOAPIC
   and local APIC with caching enabled in the pagetable, and this is
   causing problems on some boards. The patch adds a new fixmap_nocache()
   call and the SMP code now maps both the IOAPIC(s) and the local APIC(s)
   with the PCD bit set. The MP spec requires us to map APICs with
   caching disabled, nasty bug indeed.

all these changes compile/boot/work just fine on my box.

-- mingo

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Jan 23 2000 - 21:00:15 EST