[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160807165947.GX5871@two.firstfloor.org>
Date: Sun, 7 Aug 2016 09:59:47 -0700
From: Andi Kleen <andi@...stfloor.org>
To: Alexey Dobriyan <adobriyan@...il.com>
Cc: Andi Kleen <andi@...stfloor.org>, akpm@...ux-foundation.org,
linux-kernel@...r.kernel.org, viro@...iv.linux.org.uk
Subject: Re: [PATCH] proc: faster /proc/*/status
> And then what? Parsing format string is still be there.
Perhaps could have a fast path for simple cases.
>
> This is first line of profile of the first function (format_decode)
>
> │ static noinline_for_stack
> │ int format_decode(const char *fmt, struct printf_spec *spec)
> │ {
> 10.38 │ push %rbp <===
> 1.07 │ mov %rsp,%rbp
> 1.09 │ push %r12
> 4.51 │ mov %rsi,%r12
> 1.40 │ push %rbx
> 1.86 │ mov %rdi,%rbx
> │ sub $0x8,%rsp
>
> It is so bloated that gcc needs to be asked to not screw up with stack
> size.
What happens when you drop all the noinlines for this? I assume
this would alread make it faster. And now that we have bigger
stacks we can likely tolerate it.
-Andi
--
ak@...ux.intel.com -- Speaking for myself only.
Powered by blists - more mailing lists