All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Jaswinder Singh Rajput <jaswinderrajput@gmail.com>,
	randy.dunlap@oracle.com, linux-kernel@vger.kernel.org,
	x86@kernel.org, Andrea Righi <righi.andrea@gmail.com>
Subject: Re: mmotm 2009-02-02-17-12 uploaded (x86/nopmd etc.)
Date: Tue, 03 Feb 2009 14:37:51 -0800	[thread overview]
Message-ID: <4988C73F.2070707@goop.org> (raw)
In-Reply-To: <20090203212538.GB20527@elte.hu>

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

  parent reply	other threads:[~2009-02-03 22:38 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-03  1:12 mmotm 2009-02-02-17-12 uploaded akpm
2009-02-03 18:58 ` mmotm 2009-02-02-17-12 uploaded (x86/nopmd etc.) Randy Dunlap
2009-02-03 19:18   ` Ingo Molnar
2009-02-03 20:17     ` Andrew Morton
2009-02-03 21:25       ` Ingo Molnar
2009-02-03 21:41         ` Andrew Morton
2009-02-04 20:08           ` Ingo Molnar
2009-02-04 21:25             ` Andrew Morton
2009-02-04 21:29               ` Ingo Molnar
2009-02-04 21:32               ` Andrea Righi
2009-02-03 22:37         ` Jeremy Fitzhardinge [this message]
2009-02-04 19:56           ` Ingo Molnar
2009-02-03 22:13 ` [PATCH] sunrpc: fix rdma dependencies Randy Dunlap
2009-02-03 23:20   ` David Miller

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=4988C73F.2070707@goop.org \
    --to=jeremy@goop.org \
    --cc=akpm@linux-foundation.org \
    --cc=jaswinderrajput@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=randy.dunlap@oracle.com \
    --cc=righi.andrea@gmail.com \
    --cc=x86@kernel.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.