Re: latest -git: WARNING: at arch/x86/kernel/ipi.c:123 send_IPI_mask_bitmask+0xc3/0xe0()

From: H. Peter Anvin
Date: Fri Aug 22 2008 - 12:42:32 EST


Andi Kleen wrote:
We still need the equivalent functionality, though. The midlayer (msr_on_cpu) may be pointless, but that doesn't change the fact that putting this functionality in the lower layer (smp_call_function_single) makes more sense.

Assuming you can actually have interrupts enabled at these point
and be otherwise ready to do call_function_simple (e.g. cpu hotplug
locking etc.)

For a lot of MSR accesses in more complicated subsystems like cpufreq that requires complications. I would think for many circumstances it's better to simply set affinity of the thread before at a higher level.

In hindsight I think it was my mistake to ever merge that.
I admit I never liked it, but just merged it because I wasn't able
to come up with a strong enough counter argument back then.

Well, smp_call_function_single already does all necessary locking; it makes more sense for it to check that what it's about to call still exists while inside the lock, instead of requiring the higher layers to guarantee that cannot happen on it. This is simply a matter of the cost of checking at this point being quite low.

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