Messages in this thread | | | Subject | Re: [PATCH 07/10] x86: uv cleanup | From | Cliff Wickman <> | Date | Tue, 27 Jan 2009 18:19:52 -0600 |
| |
Hi Tejun,
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?
Thanks. -Cliff
const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask, struct mm_struct *mm, unsigned long va, unsigned int cpu) { static DEFINE_PER_CPU(cpumask_t, flush_tlb_mask); struct cpumask *flush_mask = &__get_cpu_var(flush_tlb_mask); int i; int bit; int blade; int uv_cpu; int this_blade; 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(); this_blade = uv_numa_blade_id();
| |