Re: arch/x86/mm/ioremap unification grew by 10x

From: Ingo Molnar
Date: Sun Feb 17 2008 - 22:17:45 EST



* Huang, Ying <ying.huang@xxxxxxxxx> wrote:

> > > And here's most of the cause:
> > >
> > > 000002b8 00000124 T early_ioremap
> > > 00001000 00001000 t bm_pte
> > > 00002000 00000004 T early_ioremap_debug
> > >
> > > static __initdata pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)]
> > > __attribute__((aligned(PAGE_SIZE)));
> > >
> > > Double ouch. First, this isn't in BSS. Second, even though it's
> > > initdata, the alignment slop won't get recovered.
> >
> > 551889a6e2a24a9c06fd453ea03b57b7746ffdc0 (the reason you CC'd me) only
> > changed this from unsigned long[1024] to pte_t[PAGE_SIZE/sizeof(pte_t)]
> >
> > -static __initdata unsigned long bm_pte[1024]
> > +static __initdata pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)]
> > __attribute__((aligned(PAGE_SIZE)));
> >
> > I don't think that would have changed anything in this respect. It seems
> > to have been that way since 0947b2f31ca1ea1211d3cde2dbd8fcec579ef395
> > when it was added (Huang Ying CC'd).
> >
> > > Don't we have a special section for page-aligned crap so it doesn't
> > > waste most of two pages?
> >
> > We have .bss.page_aligned and it seems appropriate to use it.
>
> But .bss.page_aligned is not an init section, this will waste some
> memory after boot. Do you think that it is more appropriate to add
> another section like .init.bss and .init.bss.page_aligned.

agreed, and i'd suggest we do so before this information gets forgotten
and someone has to re-discover the fix the hard way.

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