From: Adrian Bunk <bunk@stusta.de>
To: "Jörn Engel" <joern@wohnheim.fh-wedel.de>
Cc: Yum Rayan <yum.rayan@gmail.com>,
linux-kernel@vger.kernel.org, mvw@planets.elm.net
Subject: Stack usage tasks
Date: Thu, 31 Mar 2005 22:30:10 +0200 [thread overview]
Message-ID: <20050331203010.GF3185@stusta.de> (raw)
In-Reply-To: <20050331150548.GC19294@wohnheim.fh-wedel.de>
On Thu, Mar 31, 2005 at 05:05:48PM +0200, Jörn Engel wrote:
> On Wed, 30 March 2005 23:39:40 -0800, Yum Rayan wrote:
> >
> > Before patch
> > ------------
> > check_free_space - 128
> > do_acct_process - 105
> >
> > After patch
> > -----------
> > check_free_space - 36
> > do_acct_process - 44
>
> It is always nice to see enthusiams, but in your case it might be a
> bit misguided. None of the functions you worked on appear to be real
> problems wrt. stack usage.
>
> But if you have time to tackle some of these functions, that may make
> a real difference:
>
> http://wh.fh-wedel.de/~joern/stackcheck.2.6.11
>
> In principle, all recursive paths should consume as little stack as
> possible. Or the recursion itself could be avoided, even better. And
Sometimes it's easy to prove that the recursion can't occur more than
once.
Especially with a moderate stack usage, such cases are not a problem.
But auditing the recursive paths for problematic ones is still an open
task.
> some of the call chains with ~3k of stack consumption may be
> problematic on other platforms, like the x86-64. Taking care of those
> could result in smaller stacks for the respective platform.
There's also something different that can be done:
On i386, unit-at-a-time is disabled (the only currently released version
of GNU gcc with unit-at-a-time is gcc 3.4 [1]) since gcc's stack
handling isn't very good.
With unit-at-a-time, the highest stack usage within a single function is
over 3kB.
While this is technically gcc's fault, workarounds were IMHO worth it
since unit-at-a-time gives me kernel images that are smaller by 2% [2]
and I was surprised if the speed effect wasn't positive [3].
The task I'm suggesting was therefore:
- remove the -fno-unit-at-a-time in arch/i386/Makefile in your private
kernel sources
- use gcc 3.4
- reduce the stack usages in call paths > 3kB
Note that with unit-at-a-time, gcc inline several static functions, so
the stack usage you see for a function might be accumulated from several
functions.
It's IMHO the best doing this against -mm.
I do currently not have the time for doing this, but it was something
with a real advantage for many users.
> Jörn
cu
Adrian
[1] SuSE "gcc 3.3" also supports this
[2] with -O2
[3] I do not claim it has to be measurable positive, but at least not
negative
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
next prev parent reply other threads:[~2005-03-31 20:30 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-31 7:39 [PATCH] Reduce stack usage in acct.c Yum Rayan
2005-03-31 15:05 ` Jörn Engel
2005-03-31 20:09 ` Randy.Dunlap
2005-03-31 20:40 ` Adrian Bunk
2005-03-31 20:30 ` Adrian Bunk [this message]
2005-03-31 20:43 ` Stack usage tasks Roland Dreier
2005-03-31 21:19 ` Adrian Bunk
2005-04-01 10:17 ` Jörn Engel
2005-04-01 11:16 ` Jörn Engel
2005-04-03 11:35 ` [PATCH] Reduce stack usage in acct.c Olaf Dietsche
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050331203010.GF3185@stusta.de \
--to=bunk@stusta.de \
--cc=joern@wohnheim.fh-wedel.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mvw@planets.elm.net \
--cc=yum.rayan@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.