Re: [PATCH 4/8] x86: remove dupilcated #include

From: Ingo Molnar
Date: Wed Apr 08 2009 - 10:17:24 EST



* Sam Ravnborg <sam@xxxxxxxxxxxx> wrote:

> On Wed, Apr 08, 2009 at 02:21:21PM +0200, Ingo Molnar wrote:
> >
> > * Huang Weiyi <weiyi.huang@xxxxxxxxx> wrote:
> >
> > > Remove dupilcated #include in arch/x86/kernel/dumpstack.c.
> > >
> > > Signed-off-by: Huang Weiyi <weiyi.huang@xxxxxxxxx>
> > > ---
> > > arch/x86/kernel/dumpstack.c | 1 -
> > > 1 files changed, 0 insertions(+), 1 deletions(-)
> > >
> > > diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
> > > index 95ea5fa..6d7966d 100644
> > > --- a/arch/x86/kernel/dumpstack.c
> > > +++ b/arch/x86/kernel/dumpstack.c
> > > @@ -15,7 +15,6 @@
> > > #include <linux/bug.h>
> > > #include <linux/nmi.h>
> > > #include <linux/sysfs.h>
> > > -#include <linux/ftrace.h>
> > >
> > > #include <asm/stacktrace.h>
> >
> > Many of those include lines are probably unnecessary. Instead of
> > these trivial patches causing churn, would you be interested in
> > doing a comprehensive search to eliminate all the unused ones?
> > That would be a real step forward. (and this holds for your
> > other patches in this series too.)
> >
> > The include files section of fault.c might be a good template to
> > use:
> >
> > #include <linux/magic.h> /* STACK_END_MAGIC */
> > #include <linux/sched.h> /* test_thread_flag(), ... */
> > #include <linux/kdebug.h> /* oops_begin/end, ... */
> > #include <linux/module.h> /* search_exception_table */
> > #include <linux/bootmem.h> /* max_low_pfn */
> > #include <linux/kprobes.h> /* __kprobes, ... */
> > #include <linux/mmiotrace.h> /* kmmio_handler, ... */
> > #include <linux/perf_counter.h> /* perf_swcounter_*(), ... */
> >
> > #include <asm/traps.h> /* dotraplinkage, ... */
> > #include <asm/pgalloc.h> /* pgd_*(), ... */
> > #include <asm/kmemcheck.h> /* kmemcheck_*(), ... */
> >
> > I was able to eliminate half of all include file lines there.
>
> I assume you are aware that when you minimize the # of include
> file in the various .c files, then you implicitly add dependency
> on the includes the individual .h files have.

Yes. Look at the commit -tip that does the above change (also
attached below):

a2bcd47: x86/mm: further cleanups of fault.c's include file section

that commit uncovered a masked-until-then dependency bug in one of
the x86 include files.

More automation to discover include file dependency bugs would be
nice though, it's hard to get these things right and it all needs a
strong testing infrastructure.

Ingo

----------------->