Re: ZONE_PADDING wastes 4 bytes of the new cacheline

From: Nick Piggin
Date: Sat Oct 23 2004 - 05:32:32 EST


Andrea Arcangeli wrote:
On Sat, Oct 23, 2004 at 02:33:39PM +1000, Nick Piggin wrote:

Andrea Arcangeli wrote:

I don't see any benefit in limiting the high order, infact it seems a
bad bug. If something you should limit the _small_ order, so that the
high order will have a slight chance to succeed. You're basically doing
the opposite.


You need the order there so someone can't allocate a huge amount
of memory and deplete all your reserves and crash the system.


what? the point of alloc_pages is to allow people to allocate memory,
what's the difference of 1 2M allocation and 512 4k allocations? No
difference at all. Infact if something the 512 4k allocations hurts a
lot more since they can fragment the memory, while the single 2M
allocation will not fragment the memory. So if you really want to limit
something you should do the exact opposite of what the allocator is
doing.


For day to day running, it should barely make a difference because
the watermarks will be an order of magnitude larger.


yes, it makes little difference, this is why it doesn't hurt that much.


It is an unlikely scenario, but it is definitely good for robustness.
Especially on small memory systems where the amount allocated doesn't
have to be that large.

Let's say a 16MB system pages_low ~= 64K, so we'll also say we've
currently got 64K free. Someone then wants to do an order 4 allocation
OK they succeed (assuming memory isn't fragmented) and there's 0K free.

Which is bad because you can now get deadlocks when trying to free
memory.


AFAIKS, pages_min, pages_low and pages_high are all required for
what we want to be doing. I don't see you you could remove any one
of them and still have everything functioning properly....

I haven't really looked at 2.4 or your patches though. Maybe I
misunderstood you.


2.4 has everything functionally properly but it has no
pages_min/low/high, it only has the watermarks. Infact the watermarks
_are_ low/min/high. That's what I'm forward porting to 2.6 (besides
fixing minor mostly not noticeable but harmful bits like the order
nosense described above).


Oh if you've still got the three watermarks then that may work -
I thought you meant getting rid of one of the *completely*.

But I'm still not sure what advantage you see in moving from
pages_xxx + protection to a single watermark.
-
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/