lowmem_reserve question

From: Con Kolivas
Date: Sun Apr 02 2006 - 23:07:49 EST


On Sunday 02 April 2006 19:51, Nick Piggin wrote:
> That zone->lowmem_reserve[zone_idx(zone)] == 0 ?

I haven't figured out how to tackle the swap prefetch issue with lowmem
reserve just yet. While trying to digest just what the lowmem_reserve does
and how it's utilised I looked at some of the numbers

int sysctl_lowmem_reserve_ratio[MAX_NR_ZONES-1] = { 256, 256, 32 };

lower_zone->lowmem_reserve[j] = present_pages /
sysctl_lowmem_reserve_ratio[idx];

This is interesting because there are no bounds on this value and it seems
possible to set the sysctl to have a lowmem_reserve that is larger than the
zone size. Ok that's a sysctl so if a user is setting it wrongly that's their
fault... or should there be some upper bound?

Furthermore, now that we have the option of up to 3GB lowmem split on 32bit we
can have a default lowmem_reserve of almost 12MB (if I'm reading it right)
which seems very tight with only 16MB of ZONE_DMA.

On a basically idle 1GB lowmem box that I have it looks like this:

Node 0, zone DMA
pages free 1025
min 15
low 18
high 22
active 2185
inactive 0
scanned 555 (a: 21 i: 6)
spanned 4096
present 4096
protection: (0, 0, 1007, 1007)

With 3GB lowmem the default settings seem too tight to me. The way I see it,
there should be some upper bounds on the lowmem reserves. Or perhaps I'm just
missing something again... I'm feeling even thicker than usual.

Cheers,
Con
-
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/