[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1470591565.28648.40.camel@perches.com>
Date: Sun, 07 Aug 2016 10:39:25 -0700
From: Joe Perches <joe@...ches.com>
To: Andi Kleen <andi@...stfloor.org>,
Alexey Dobriyan <adobriyan@...il.com>
Cc: akpm@...ux-foundation.org, linux-kernel@...r.kernel.org,
viro@...iv.linux.org.uk
Subject: Re: [PATCH] proc: faster /proc/*/status
On Sun, 2016-08-07 at 09:59 -0700, Andi Kleen wrote:
> > 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.
%pV recurses through these code paths.
I believe the maximum current recursion depth is 3.
Powered by blists - more mailing lists