Re: [PATCH 07/10] x86: uv cleanup

From: Tejun Heo
Date: Tue Jan 27 2009 - 19:33:43 EST


Cliff Wickman wrote:
> I appreciate your consolidation and cleanup of the UV code, relative
> to 32 vs 64.
>
> I have a question about the addition of the
> WARN_ON(!in_atomic());
> in uv_flush_tlb_others().
> The patch is
> http://marc.info/?l=linux-kernel&m=123252788121855&w=2
>
> I expect this function to always entered preemptable.
> Could you explain a bit about your thought behind this WARN_ON?

The function needs to return modified cpumask. Before the patch, this
was achieved by the caller disabling preemption and pass modifiable
per-cpu cpumask and allowing uv code to modify it in place. After the
patch, to put uv code in uv proper (so that the generic code doesn't
have to allocate percpu cpumask for it), this is moved into the uv
function. The caller disables preemtion and uses the returned cpumask
which might or might not be the same array it gave to the function and
the array is guaranteed to be valid until preemption is re-enabled.
The meachnism itself isn't different. Only what's done where has
changed to make it more modular. More specifically, when uv is not
needed, the generic code can simply omit the uv related part including
the percpu cpumask allocation.

Thanks.

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