Messages in this thread | | | Date | Sat, 10 Oct 2015 11:05:46 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH v2 32/36] x86/entry: Micro-optimize compat fast syscall arg fetch |
| |
* Andy Lutomirski <luto@amacapital.net> wrote:
> On Fri, Oct 9, 2015 at 12:32 AM, Ingo Molnar <mingo@kernel.org> wrote: > > > > * Andy Lutomirski <luto@kernel.org> 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
| |