Re: [PATCH v2 0/6] macros for section name cleanup

From: Sam Ravnborg
Date: Mon May 04 2009 - 13:52:28 EST


On Mon, May 04, 2009 at 01:42:08PM -0400, Mike Frysinger wrote:
> On Mon, May 4, 2009 at 12:32, Tim Abbott wrote:
> > On Mon, 4 May 2009, Sam Ravnborg wrote:
> >> +#define RW_DATA_SECTION(page_align, readmostly_align, cache_align,
> >> inittask_align) \
> >> +     . = ALIGN(PAGE_SIZE);                                           \
> >> +     .data : AT(ADDR(.data) - LOAD_OFFSET) {                         \
> >> +             DATA_DATA                                               \
> >> +             CONSTRUCTORS                                            \
> >> +             NOSAVE_DATA                                             \
> >> +             PAGE_ALIGNED_DATA(page_align)                           \
> >> +             READMOSTLY_DATA(readmostly_align)                       \
> >> +             CACHELINE_ALIGNED_DATA(cache_align)                     \
> >> +             INIT_TASK(inittask_align)                               \
> >> +     }
> >
> > How did you pick the order of the sections here?  I would think that to
> > pack the .data section efficiently, you'd want to sort by alignment
> > requirements so that e.g. all the at-least-page aligned sections are
> > adjacent (INIT_TASK and the page-aligned sections are separated by some
> > much smaller aligments here).
>
> if this were actually the case, there should of course be some /*
> comments */ above the define explaining that the order wasnt
> arbitrarily pulled like a rabbit from an orifice. if you're
> scratching your head, then there's going to be plenty more people who
> never ask but treat it like untouchable voodoo.

Point taken (from both of you).
I will try to document the order in next version.

In reality I just picked the order used for 32 bit x86 IIRC.

Sam
--
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/