Re: [PATCH 6/8] x86: use flush_tlb_others to implement flush_tlb_all

From: Jeremy Fitzhardinge
Date: Fri May 08 2009 - 11:50:15 EST


Ian Campbell wrote:
On Thu, 2009-05-07 at 13:25 -0700, Jeremy Fitzhardinge wrote:
From: Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>

Use the flush_tlb_others() call to implement flush_tlb_all().

This causes:
BUG: spinlock bad magic on CPU#0, swapper/0
lock: c05b7588, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
Pid: 0, comm: swapper Not tainted 2.6.30-rc3-x86_32p-xen0-tip-01797-g3db7847 #1054
Call Trace:
[<c023e656>] spin_bug+0x96/0xf0
[<c023e90f>] _raw_spin_lock+0x6f/0x150

Ah, right. I had another change (somewhere around here) to explicitly initialize the tlb flush code from the normal early init code, rather than make it implicit via initcall. Otherwise we have an unknown point at which we're allowed to start using global flushes, which is a bit flakey.

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