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

From: H. Peter Anvin
Date: Wed Jun 15 2011 - 13:22:05 EST


On 06/15/2011 09:40 AM, Cliff Wickman wrote:
>
> So would you say I should really widen the scope of the non-preemptible
> region to include everything done with the results of that call to
> smp_processor_id()?
> Which in this case is the call to parse_tunables_write().
> Like this:
>
> preempt_disable();
> bcp = &per_cpu(bau_control, smp_processor_id());
>
> ret = parse_tunables_write(bcp, instr, count);
> preempt_enable_no_resched();
>

Funny enough, this is such a common pattern that we have helpers for it.
We call this get_cpu() ... put_cpu().

-hpa

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