Re: lowmem_reserve (replaces protection)

From: Nick Piggin
Date: Mon Oct 25 2004 - 22:57:34 EST


Andrea Arcangeli wrote:
On Mon, Oct 25, 2004 at 09:48:25PM -0400, Rik van Riel wrote:

On Mon, 25 Oct 2004, Andrea Arcangeli wrote:


This is a forward port to 2.6 CVS of the lowmem_reserve VM feature in
the 2.4 kernel.

http://www.kernel.org/pub/linux/kernel/people/andrea/patches/v2.6/2.6.9/lowmem_reserve-1

- unsigned long protection[MAX_NR_ZONES];
+ unsigned long lowmem_reserve[MAX_NR_ZONES];

The gratituous renaming of variable and function names makes
it hard to see what this patch actually changed. Hard enough
that I'm not sure what the behavioural difference is supposed
to be.


the behavioural difference is the API and the fact the feaure is now
enabled with sane values (the previous code was disabled by default and
it was unusable with that API). besides fixing the API the patch nukes
dozens of useless lines of code and a buffer overflow. The sysctl
definitely needs renaming or it'd break the ABI with userspace, it's far
from a gratituous rename. since I was foroced to change the sysctl name
accordingly with the new 2.4 API, I thought renaming the variable that
is set by the sysctl was also required, otherwise the sysctl is called
lowmem_reserve and the variable is still called protection. Clearly it's
much cleaner if _both_ sysctl and variable are called lowmem_reserve.

I could have used protection2 to still use the "protection" name, but
lowmem_reserve (btw, the same name I used first in 2.4, before
protection ever existed in 2.6) looks nicer to me.


I'd say go with the name change. "protection" is fairly vague...
OTOH, lowmem_reserve doesn't quite carry the meaning that it is
_protecting_ lower zones from higher zone allocations... maybe
lowmem_protection? But I don't mind too much.

I see classzone_idx snuck in, can we leave that as alloc_type please?

Otherwise, looks great.
-
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/