Re: [PATCH v2 32/36] x86/entry: Micro-optimize compat fast syscall arg fetch

From: Ingo Molnar
Date: Sat Oct 10 2015 - 05:06:00 EST



* Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:

> On Fri, Oct 9, 2015 at 12:32 AM, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
> >
> > * Andy Lutomirski <luto@xxxxxxxxxx> wrote:
> >
> >> we're following a 32-bit pointer, and the uaccess code isn't smart
> >> enough to figure out that the access_ok check isn't needed.
> >>
> >> This saves about three cycles on a cache-hot fast syscall.
> >
> > Another request: could you please stick the benchmarking code of the various x86
> > system call variants into 'perf bench' - under tools/perf/bench/, so that
> > measurements can be done on more hardware and can be reproduced easily?
> >
> > I'd suggest we dedicate an entirely new benchmark family to it: 'perf bench x86'
> > and then have:
> >
> > perf bench x86 syscall vdso
> > perf bench x86 syscall int80
> > perf bench x86 syscall vdso-compat
>
> I'll play with this. I'm not too familiar with the perf bench stuff.

So the perf bench stuff is meant to be a familiar home to kernel developers we'd
like to slap a micro (or macro) benchmark into an easy to modify place.

Over the years it has gathered a number of benchmarks - but more are always
welcome.

Just copy one of the existing benchmark modules (the tools/perf/bench/numa.c one
is the most advanced one, tools/perf/bench/sched-pipe.c is the simplest one) and
off you go.

Here's a commit that adds a new benchmark suite:

a043971141f1 ("perf bench: Add futex-hash microbenchmark")

There are no big restrictions on the benchmarks: just put your existing code in
that produces stdout output and it will be likely very close to upstream
acceptable.

Can help should you get stuck anywhere.

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/