Re: [PATCH v3 5/5] x86/entry/64: Bypass enter_from_user_mode on non-context-tracking boots

Andy Lutomirski
2015-11-16T19:11:16Z

On Nov 13, 2015 7:26 AM, "Frederic Weisbecker" <fweisbec@gmail.com> wrote:
>
> On Thu, Nov 12, 2015 at 12:59:04PM -0800, Andy Lutomirski wrote:
> > On CONFIG_CONTEXT_TRACKING kernels that have context tracking
> > disabled at runtime (which includes most distro kernels), we still
> > have the overhead of a call to enter_from_user_mode in interrupt and
> > exception entries.
> >
> > If jump labels are available, this uses the jump label
> > infrastructure to skip the call.
>
> Looks good. But why are we still calling context tracking code on IRQs at all?

Same reasons as before:

1. This way the IRQ exit path is almost completely shared with all the
other exit paths.

2. It combines the checks for which context we were in with what CPL
we entered from.

Part 2 should be complete across the whole x86 kernel soon once the
64-bit syscall code gets fixed up.

We should get rid of the duplication in the irq entry hooks. Want to
help with that? Presumably we should do the massive remote polling
speedup to the nohz code, and we should also teach
enter_from_user_mode to transition directly to IRQ state as
appropriate. Then irq_enter can be much faster.

--Andy