Messages in this thread | | | Subject | Re: x86: Is there still value in having a special tlb flush IPI vector? | From | Peter Zijlstra <> | Date | Thu, 31 Jul 2008 23:15:09 +0200 |
| |
On Thu, 2008-07-31 at 22:57 +0200, Ingo Molnar wrote: > * Jeremy Fitzhardinge <jeremy@goop.org> wrote: > > > Peter Zijlstra wrote: > > > How about using just arch_send_call_function_single_ipi() to implement > > > smp_send_reschedule() ? > > > > > > The overhead of that is a smp_mb() and a list_empty() check in > > > generic_smp_call_function_single_interrupt() if there is indeed no work > > > to do. > > > > Is doing a no-op interrupt sufficient on all architectures? Is there > > some change a function call IPI might not go through the normal > > reschedule interrupt exit path? > > We'd still use the smp_send_reschdule(cpu) API, so it's an architecture > detail. On x86 we'd use arch_send_call_function_single_ipi().
Also, all interrupts _should_ do the regular interrupt enter/exit paths, we fixup stuff there, like jiffies and such.
We had a fun NO_HZ bug the other day because some sparc64 IPIs didn't.
| |