Linus Torvalds wrote:
> > I'm lost. I know you need aligned allocations. I don't see why you
> > have to align a zone to get aligned allocations.
>
> You don't have to. However, if you don't align the zone, you have to
> still offset a lot of the calculations by the "alignment factor". Which
> bacially means that you in practice _do_ end up aligning it after all,
> it's just that you're doing it at run-time instead of setup-time. No
> real difference, and doing it at setup is clearer I think.
Fair enough. I see that for the bitmap index in particular.
I suppose a small amount of memory could be saved by noting that, as
some parts of a not-really-aligned zone are never allocated, those parts
of the bitmap don't have to exist.
Slightly different topic: I think I see a bug. This code in
free_pages_ok:
map_nr &= mask;
...
buddy = list(map_nr ^ -mask);
...
mask <<= 1;
...
map_nr &= mask;
map_nr here is relative to the first page in mem_map, whichever zone is
used. That means the first page in mem_map had better have as much
alignment as any zone, otherwise the masking operations on map_nr aren't
going to work nicely at all. This only affects the folks who are asking
about systems with memory that doesn't start at address zero.
enjoy,
-- Jamie
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Tue Feb 15 2000 - 21:00:16 EST