SMP pre2-2.3.43 is pretty unstable due to the x86 SMP TLB flush changes.
This patch fixes these bugs and cleans up the TLB changes so that it fits
nicer into the existing x86/SMP framework.
Changes in smp-2.3.43-B5:
- send IPIs only to CPUs which are affected. This ment that
send_IPI_single() was replaced by send_IPI_mask() (no slowdown at all
in smp_send_reschedule()), and that send_IPI_mask() from now on can
send IPIs to an arbitrary group of CPUs. This change was enabled by
the mm->cpu_vm_mask & recent TLB-changes and by the transition to
logical APIC addressing mode. Quad and 8-way systems should see a
noticeable cross-CPU TLB-flush cost reduction from this.
- got rid of the cpu_online_mask check - with the above change it's
unnecessery. (not online CPUs cannot have bits set in any
mm->cpu_vm_mask.)
- exported the check for cpu_mask into the global flush functions.
!cpu_mask is actually the common case, no need to call
flush_tlb_others() just to discover in 99% of the cases that we have
to return immediately. (inlining flush_tlb_others() is not good
either, it's a rather long function and is called from several
functions.)
- (small cleanups)
pre2-2.3.43 is now completely stable here.
-- mingo
Changes in smp-2.3.43-B1:
- reverses parts of the pgtable.h flush_tlb optimization. It's just too
complex to try to be too smart about flushing TLBs in an IRQ context.
This bug causes frequent SMP crashes on vanilla 2.3.42 and
pre2-2.3.43.
- adds Linus' suggested 'fuzzy parsing' fix to
IO_APIC_get_PCI_irq_vector() - this should fix some of the SMP + USB
problems reported. It might also introduce problems on other systems
so we'll see.
-- 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 : Tue Feb 15 2000 - 21:00:12 EST