lkml.org 
[lkml]   [2004]   [Dec]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch] [RFC] make WANT_PAGE_VIRTUAL a config option
    Hi,

    On Fri, 17 Dec 2004, Dave Hansen wrote:

    > > > No. But, I do think that most of the very basic VM structures do, as it
    > > > stands. That's limited to struct page, zone, and pgdat as I see it
    > > > now.
    > >
    > > Why do you want to put these into separate headers?
    >
    > It enables you do do static inlines accessing struct page members
    > anywhere you want, such as in asm/mmzone.h, like in my example.

    And by that you add more header dependencies.
    We have basically this situation:

    foo.h (struct foo; inline foo();) <-> bar.h (struct bar; inline bar();)

    Almost every time we had such recursive dependencies, we simply rip one
    element out and put it into a separate header:

    foo.h (inline foo();)
    -> bar.h (struct bar; inline bar();)
    -> foo_struct.h (struct foo;)

    Repeat this often enough and we end up with millions of small header
    files. Instead we can reorder everything a little and can do this:

    foo.h (inline foo(); inline bar();)
    -> foo_types.h (struct foo; struct bar;)

    In your case don't put the inline functions into asm/mmzone.h and we
    should merge the various definition into fewer header files.

    > > > The dependencies aren't very twisted at all. In fact, I don't think any
    > > > of those are deeper than two. More importantly, I never have to cope
    > > > with 'struct page;' keeping me from doing arithmetic.
    > >
    > > You may be surprised. :)
    > > Play around with "mkdir test; echo 'obj-y = test.o' > test/Makefile; echo
    > > '#include <linux/foo.h>' > test/test.c; make test/test.i
    > > CFLAGS_test.o=--trace-includes".
    >
    > I'm not sure what you're getting at.
    >
    > make: *** No rule to make target `test/test.i'. Stop.

    Sorry, I forgot to mention that you have to do this inside a kernel tree.

    bye, Roman
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:08    [W:0.031 / U:3.112 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site