2009-03-06 23:31:12

by Cliff Wickman

[permalink] [raw]
Subject: [PATCH v2] x86: UV uv_flush_tlb_others WARN_ON



From: Cliff Wickman <[email protected]>

The problem WARN_ON remains in Ingo's tree, and linux-next.
It should be dropped.

uv_flush_tlb_others() (arch/x86/kernel/tlb_uv.c)
The "WARN_ON(!in_atomic())" fails if CONFIG_PREEMPT is not enabled.
And CONFIG_PREEMPT is not enabled by default in the distribution that
most UV owners will use.

We could #ifdef CONFIG_PREEMPT the warning, but that is not good form.
And there seems to be no suitable fix to in_atomic() when CONFIG_PREMPT
is not on.
As you commented, Ingo:
> and we have no proper primitive to test for atomicity. (mainly
> because we dont know about atomicity on a non-preempt kernel)

I propose that we drop the WARN_ON.

Diffed against 2.6.29-rc2

Signed-off-by: Cliff Wickman <[email protected]>
---
arch/x86/kernel/tlb_uv.c | 2 --
1 file changed, 2 deletions(-)

Index: linux/arch/x86/kernel/tlb_uv.c
===================================================================
--- linux.orig/arch/x86/kernel/tlb_uv.c
+++ linux/arch/x86/kernel/tlb_uv.c
@@ -316,8 +316,6 @@ const struct cpumask *uv_flush_tlb_other
int locals = 0;
struct bau_desc *bau_desc;

- WARN_ON(!in_atomic());
-
cpumask_andnot(flush_mask, cpumask, cpumask_of(cpu));

uv_cpu = uv_blade_processor_id();


2009-03-07 05:53:38

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH v2] x86: UV uv_flush_tlb_others WARN_ON

Cliff Wickman wrote:
> From: Cliff Wickman <[email protected]>
>
> The problem WARN_ON remains in Ingo's tree, and linux-next.
> It should be dropped.

Sorry, I must have lost it while tinkering with branches. Added to
#tj-percpu. Ingo, the patch is on top of the locking granuality
patchset. Pulling #tj-percpu will include this one too.

Thanks.

--
tejun