[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160708182344.GC4429@gmail.com>
Date: Fri, 8 Jul 2016 20:23:44 +0200
From: Ingo Molnar <mingo@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Kees Cook <keescook@...omium.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Rik van Riel <riel@...hat.com>,
Casey Schaufler <casey@...aufler-ca.com>,
PaX Team <pageexec@...email.hu>,
Brad Spengler <spender@...ecurity.net>,
Russell King <linux@...linux.org.uk>,
Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will.deacon@....com>,
Ard Biesheuvel <ard.biesheuvel@...aro.org>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Michael Ellerman <mpe@...erman.id.au>,
Tony Luck <tony.luck@...el.com>,
Fenghua Yu <fenghua.yu@...el.com>,
"David S. Miller" <davem@...emloft.net>,
the arch/x86 maintainers <x86@...nel.org>,
Christoph Lameter <cl@...ux.com>,
Pekka Enberg <penberg@...nel.org>,
David Rientjes <rientjes@...gle.com>,
Joonsoo Kim <iamjoonsoo.kim@....com>,
Andrew Morton <akpm@...ux-foundation.org>,
Andy Lutomirski <luto@...nel.org>,
Borislav Petkov <bp@...e.de>,
Mathias Krause <minipli@...glemail.com>,
Jan Kara <jack@...e.cz>, Vitaly Wool <vitalywool@...il.com>,
Andrea Arcangeli <aarcange@...hat.com>,
Dmitry Vyukov <dvyukov@...gle.com>,
Laura Abbott <labbott@...oraproject.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux-ia64@...r.kernel.org" <linux-ia64@...r.kernel.org>,
ppc-dev <linuxppc-dev@...ts.ozlabs.org>,
sparclinux@...r.kernel.org,
"linux-arch@...r.kernel.org" <linux-arch@...r.kernel.org>,
linux-mm <linux-mm@...ck.org>,
"kernel-hardening@...ts.openwall.com"
<kernel-hardening@...ts.openwall.com>,
Thomas Gleixner <tglx@...utronix.de>,
"H. Peter Anvin" <hpa@...or.com>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>
Subject: Re: [PATCH 0/9] mm: Hardened usercopy
* Linus Torvalds <torvalds@...ux-foundation.org> wrote:
> On Fri, Jul 8, 2016 at 1:46 AM, Ingo Molnar <mingo@...nel.org> wrote:
> >
> > Could you please try to find some syscall workload that does many small user
> > copies and thus excercises this code path aggressively?
>
> Any stat()-heavy path will hit cp_new_stat() very heavily. Think the
> usual kind of "traverse the whole tree looking for something". "git
> diff" will do it, just checking that everything is up-to-date.
>
> That said, other things tend to dominate.
So I think a cached 'find /usr >/dev/null' might be a good one as well:
triton:~/tip> strace -c find /usr >/dev/null
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
47.09 0.006518 0 254697 newfstatat
26.20 0.003627 0 254795 getdents
14.45 0.002000 0 1147411 fcntl
7.33 0.001014 0 509811 close
3.28 0.000454 0 128220 1 openat
1.52 0.000210 0 128230 fstat
0.27 0.000016 0 12810 write
0.00 0.000000 0 10 read
triton:~/tip> perf stat --repeat 3 -e cycles:u,cycles:k,cycles find /usr >/dev/null
Performance counter stats for 'find /usr' (3 runs):
1,594,437,143 cycles:u ( +- 2.76% )
2,570,544,009 cycles:k ( +- 2.50% )
4,164,981,152 cycles ( +- 2.59% )
0.929883686 seconds time elapsed ( +- 2.57% )
... and it's dominated by kernel overhead, with a fair amount of memcpy overhead
as well:
1.22% find [kernel.kallsyms] [k] copy_user_enhanced_fast_string
But maybe there are simple shell commands that are even more user-memcpy intense?
Thanks,
Ingo
Powered by blists - more mailing lists