Re: [patch] fix for SMP stuck on IPI-TLB-flush [Re: 2.2.9-ac2 locks solid]

Ingo Molnar (mingo@chiara.csoma.elte.hu)
Mon, 7 Jun 1999 18:56:18 +0200 (CEST)


On Mon, 7 Jun 1999, Andrea Arcangeli wrote:

> asmlinkage void do_nmi(struct pt_regs * regs, long error_code)
> {
> - unsigned char reason = inb(0x61);
> extern atomic_t nmi_counter;
> + extern unsigned long smp_invalidate_needed;
>
> atomic_inc(&nmi_counter);
> + if (test_and_clear_bit(smp_processor_id(), &smp_invalidate_needed))
> + {
> + local_flush_tlb();
> + return;
> + }
> +{

this is rather unsafe - you might end up hiding a 'real' NMI. This was one
of the reasons why i never pressed for getting my NMI patches into the
kernel, it's not a clean hw interface in it's current form. Why did you
have to add the NMI stuff and mix it up with your fixes - the NMI TLB
flushing things is definitely unnecessery now and a rather dubious
optimization, especially in the 2.2 cycle. Also, as i explained earlier,
the NMI thing is an optimization and it only hides bugs, does not solve it
...

-- 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/