Re: [PATCH] x86: put initial_pg_tables into bss -v2

From: H. Peter Anvin
Date: Sun Mar 01 2009 - 04:23:25 EST


Yinghai Lu wrote:
Impact: cleanup

Don't use ram after _end blindly for pagetables.
put those pg table into bss

also remove init_pg_tables_start/end tricks all around

v2: keep initial page table up to 512M only.


I really, REALLY, don't like this. This is going right back to the situation which we had before the dynamically generated page tables. We now have yet another hardcoded limit, and big chunk of wasted memory in case we don't need to allocate it all.

* Modulo rounding, each megabyte assigned here requires a kilobyte of
* memory, which is currently unreclaimed.

You're potentially throwing away half a megabyte, which is a major deal on a small embedded system!

No, this is garbage. If you're insisting on getting rid of the brk-like allocation patterns, then you have to get an alternative dynamic allocator available to the pre-paging code. Now, there is no reason we couldn't execute C code before enabling paging, although the code would either have to be PIC or linked at the physical address.

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