[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-mm
Subject: Re: The VFS cache is not freed when there is not enough free memory
From: Nick Piggin <nickpiggin () yahoo ! com ! au>
Date: 2006-11-30 21:18:13
Message-ID: 456F4A95.2090503 () yahoo ! com ! au
[Download RAW message or body]
Aubrey wrote:
> On 11/29/06, Nick Piggin <nickpiggin@yahoo.com.au> wrote:
>
>> That was the order-9 allocation failure. Which is not going to be
>> solved properly by just dropping caches.
>>
>> But Sonic apparently saw failures with 4K allocations, where the
>> caches weren't getting shrunk properly. This would be more interesting
>> because it would indicate a real problem with the kernel.
>>
> I have done several test cases. when cat /proc/meminfo show MemFree <
> 8192KB,
>
> 1) malloc(1024 * 4), 256 times = 8MB, allocation successful.
> 2) malloc(1024 * 16), 64 times = 8MB, allocation successful.
> 3) malloc(1024 * 64), 16 times = 8MB, allocation successful.
> 4) malloc(1024 * 128), 8 times = 8MB, allocation failed.
> 5) malloc(1024 * 256), 4 times = 8MB, allocation failed.
>
>> From those results, we know, when allocation <=64K, cache can be
>
> shrunk properly.
> That means the malloc size of an application on nommu should be
> <=64KB. That's exactly our problem. Some video programmes need a big
> block which has contiguous physical address. But yes, as you said, we
> must keep malloc not to alloc a big block to make the current kernel
> working robust on nommu.
>
> So, my question is, Can we improve this issue? why malloc(64K) is ok
> but malloc(128K) not? Is there any existing parameters about this
> issue? why not kernel attempt to shrunk cache no matter how big memory
> allocation is requested?
>
> Any thoughts?
The pattern you are seeing here is probably due to the page allocator
always retrying process context allocations which are <= order 3 (64K
with 4K pages).
You might be able to increase this limit a bit for your system, but it
could easily cause problems. Especially fragmentation on nommu systems
where the anonymous memory cannot be paged out.
--
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic