From: Ingo Molnar <mingo@elte.hu>
To: Tejun Heo <tj@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Andrew Morton <akpm@linux-foundation.org>,
lkml <linux-kernel@vger.kernel.org>,
Lee Schermerhorn <Lee.Schermerhorn@hp.com>,
Christoph Lameter <cl@linux-foundation.org>
Subject: Re: [RFC] remove implicit slab.h inclusion from percpu.h
Date: Tue, 16 Mar 2010 08:49:32 +0100 [thread overview]
Message-ID: <20100316074932.GD18448@elte.hu> (raw)
In-Reply-To: <4B9F2B0A.70507@kernel.org>
* Tejun Heo <tj@kernel.org> wrote:
> > Also, why should we make this opt-in and expose a wide range of configs to
> > build breakages? A more gradual approach would be to write a simple script
> > that adds a slab.h include to all .c's that include percpu.h, directly or
> > indirectly.
> >
> > You can map the pattern experimentally: the insertion pattern could be
> > built from the x86 allmodconfig build you did [i.e. extend the pattern
> > until you make it build on allmodconfig] - that would cover most cases in
> > practice (not just allmodconfig) - and would cover most architectures as
> > well.
>
> I don't really get the 'experimental' part but if I count all the files
> which ends up including percpu.h directly or indirectly on allmodconfig it
> ends up including much more .c files than necessasry - 11203 to be exact,
> ~20 times more than necessary. Inclusions from .c files definitely are much
> less troublesome so the situation would be better than now but we'll still
> end up with a LOT of bogus inclusions without any good way to eventually
> remove them.
That raises another problem we have: based on the sanitization of #include
lines in a couple of files in the past, about 70-80% [+-10%] of all include
lines are superfluous and duplicative.
So besides include file dependency incest, we have a random #include mess at
the top of virtually every .c file in the kernel that has been around for more
than a couple of years.
That too slows down the kernel build.
> Maybe a better way is to grab for slab API usages in .c files which don't
> have slab.h inclusion. If breaking the dependency is the way to go, I can
> definitely write up some scripts and do test builds on some archs. There
> sure will be some fallouts but I think it won't be too bad.
Yeah, actual API usages would be quite good as an insertion pattern. I've done
a good deal of such large-scale conversions in the past, and what worked (for
me) best was along the lines of:
- step 1: shoot for an all-tree scripted conversion (which tries to overshoot
the target, not under-shoot it)
- step 2: some good build testing as there's always a few exceptions not
worth scripting
The solution you went for is good for an initial prototype, but i'd expect it
to cause quite some build breakage that will be a shock to the system.
The shock can be avoided i think, with some more work (on your side :-/ ).
Thanks,
Ingo
next prev parent reply other threads:[~2010-03-16 7:49 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-11 14:56 [RFC] remove implicit slab.h inclusion from percpu.h Tejun Heo
2010-03-11 17:48 ` Alexey Dobriyan
2010-03-11 22:33 ` Tejun Heo
2010-03-16 4:27 ` Tejun Heo
2010-03-16 6:17 ` Ingo Molnar
2010-03-16 6:54 ` Tejun Heo
2010-03-16 7:44 ` Tejun Heo
2010-03-16 7:57 ` Ingo Molnar
2010-03-16 8:32 ` Alexey Dobriyan
2010-03-16 9:11 ` Pekka Enberg
2010-03-16 7:49 ` Ingo Molnar [this message]
2010-03-16 6:58 ` Pekka Enberg
2010-03-16 7:15 ` Alexey Dobriyan
2010-03-16 7:56 ` Pekka Enberg
2010-03-16 8:23 ` Alexey Dobriyan
2010-03-16 9:06 ` Pekka Enberg
2010-03-16 8:25 ` Ingo Molnar
2010-03-16 7:14 ` Alexey Dobriyan
2010-03-16 8:16 ` Ingo Molnar
2010-03-16 16:16 ` Christoph Lameter
2010-03-16 22:57 ` Tejun Heo
2010-03-17 16:34 ` Christoph Lameter
2010-03-17 17:14 ` Lee Schermerhorn
2010-03-17 19:54 ` Christoph Lameter
2010-03-17 23:00 ` Tejun Heo
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=20100316074932.GD18448@elte.hu \
--to=mingo@elte.hu \
--cc=Lee.Schermerhorn@hp.com \
--cc=akpm@linux-foundation.org \
--cc=cl@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.org \
/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.