Re: [PATCH 1 of 6] x86, UV: smp_processor_id in a preemptable region

From: Rakib Mullick
Date: Wed Jun 15 2011 - 02:05:25 EST


On Wed, Jun 15, 2011 at 5:06 AM, Cliff Wickman <cpw@xxxxxxx> wrote:
> From: Cliff Wickman <cpw@xxxxxxx>
>
> Calling smp_processor_id() from within a preemptable region will issue
> a warning if DEBUG_PREEMPT is set.
>
> Diffed against 3.0.0-rc3
>
> Signed-off-by: Cliff Wickman <cpw@xxxxxxx>
> ---
>  arch/x86/platform/uv/tlb_uv.c |    2 ++
>  1 file changed, 2 insertions(+)
>
> Index: linux/arch/x86/platform/uv/tlb_uv.c
> ===================================================================
> --- linux.orig/arch/x86/platform/uv/tlb_uv.c
> +++ linux/arch/x86/platform/uv/tlb_uv.c
> @@ -1334,7 +1334,9 @@ static ssize_t tunables_write(struct fil
>
>        instr[count] = '\0';
>
> +       preempt_disable(); /* avoid DEBUG_PREEMPT warning */

I think above code comment, "avoid DEBUG_PREEMPT warning" should be to
something more meaningful. It's a BUG, if smp_processor_id() is called
within preemptible context. So, we don't want to hit that BUG.

>        bcp = &per_cpu(bau_control, smp_processor_id());
> +       preempt_enable_no_resched();
>
>        ret = parse_tunables_write(bcp, instr, count);
>        if (ret)
> --
> 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/
>
--
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/