Re: [PATCH v5 8/9] x86-64: Emulate legacy vsyscalls

From: Ingo Molnar
Date: Mon Jun 06 2011 - 12:00:19 EST



* pageexec@xxxxxxxxxxx <pageexec@xxxxxxxxxxx> wrote:

> On 6 Jun 2011 at 17:26, Ingo Molnar wrote:
>
> >
> > * pageexec@xxxxxxxxxxx <pageexec@xxxxxxxxxxx> wrote:
> >
> > > > > a page fault is never a fast path, after all the cpu has just
> > > > > taken an exception (vs. the syscall/sysenter style actually
> > > > > fast user->kernel transition) and is about to make page table
> > > > > changes (and possibly TLB flushes).
> > > >
> > > > Sure it is. It's a path that's optimized carefully and needs to
> > > > be as fast as possible. Just because it's annoyingly slow
> > > > doesn't mean we get to make it even slower.
> > >
> > > sorry, but stating that the pf handler is a fast path doesn't
> > > make it so ;) [...]
> >
> > Are you talking about the Linux kernel?
>
> yes, what else? ;)

Dunno, Windows perhaps? You were talking about a page fault handler
that was a slowpath, you cannot possibly have meant Linux with that.

> > FYI, incredible amount of work has gone into making pagefaults as
> > fast and scalable as possible.
>
> i wasn't talking about scalability (it's irrelevant anyway here),
> only speed. [...]

Which part of "fast and scalable" did you not understand?

Just a couple of days ago i noticed a single cycle inefficiency in
the pagefault fastpath, introduced in the 3.0 merge window. I
requested (and got) an urgent fix for that:

b80ef10e84d8: x86: Move do_page_fault()'s error path under unlikely()

| Ingo suggested SIGKILL check should be moved into slowpath
| function. This will reduce the page fault fastpath impact
| of this recent commit:
|
| 37b23e0525d3: x86,mm: make pagefault killable

I treated it as a performance regression.

So i ask you again, what is your basis for calling the #PF path on
Linux a 'slowpath'? Is Linus's and my word and 5 years of Git history
showing that it's optimized as a fastpath not enough proof for you?

Thanks,

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