On Sat, 2012-10-20 at 12:22 -0400, Frederic Weisbecker wrote: > + if (empty) { > + /* > + * If an IPI is requested, raise it right away. Otherwise wait > + * for the next tick unless it's stopped. Now if the arch uses > + * some other obscure way than IPI to raise an irq work, just > raise > + * and don't think further. > + */ > + if (ipi || !arch_irq_work_has_ipi() || > tick_nohz_tick_stopped()) > + arch_irq_work_raise(); > + } > preempt_enable(); > }
Doesn't this have a problem where we enqueue the first lazy and then one with ipi? In that case it appears we won't send the IPI because the queue wasn't empty. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/