Re: mmotm 2009-02-02-17-12 uploaded (x86/nopmd etc.)
From: Jeremy Fitzhardinge
Date: Tue Feb 03 2009 - 17:38:15 EST
Ingo Molnar wrote:
the include file spaghetti is ... interesting there, and it's historic.
I could blame it on highmem, PAE or paravirt - but i'll only blame it on
paravirt for now because those developers are still around! ;-)
Hey, don't forget unification, if we're pointing fingers ;)
Jeremy, any ideas how to reduce the historic dependency mess in that area?
I think we should go on three routes at once:
- agressive splitup and separation of type definitions from method
declaration (+ inline definitions). The spinlock_types.h / spinlock.h
splitup was really nice in solving such dependency problems.
That already exists to some extent, though I don't think it's being used
to maximum advantage (pgtable-[23]level.h vs pgtable-[23]level-defs.h).
For consistency we'd have pgtable-4level(-defs).h headers too, and
top-level pgtable.h/pgtable-defs.h headers. But its not clear to me
that would even be enough...
- uninlining of methods: instead of macro-ing them - wherever possible.
It's really hard to mess up type + externs headers - while headers with
inlines and macros mixed in get painful quickly.
Yes. I went through a period of fairly aggressive inline->macro
conversion, and in many cases the remaining macros are there to #include
hell.
- removal of spurious pile of dozens of #include lines in header files.
Yeah, it would be useful to make sure that each header only #includes
the bare minimum headers to satisfy its own definitions - but of course
that's going to provoke a long series of #include whack-a-mole patches.
J
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/