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-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html