|
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
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.