Re: The VFS cache is not freed when there is not enough free memoryto allocate

From: Nick Piggin
Date: Wed Nov 29 2006 - 04:31:55 EST


Aubrey wrote:
On 11/29/06, Sonic Zhang <sonic.adi@xxxxxxxxx> wrote:

Forward to the mailing list.

> On 11/27/06, Nick Piggin <nickpiggin@xxxxxxxxxxxx> wrote:


>> I haven't actually written any nommu userspace code, but it is obvious
>> that you must try to keep malloc to <= PAGE_SIZE (although order 2 and
>> even 3 allocations seem to be reasonable, from process context)... Then
>> you would use something a bit more advanced than a linear array to store
>> data (a pagetable-like radix tree would be a nice, easy idea).
>>
>
> But, even we split the 8M memory into 2048 x 4k blocks, we still face
> this failure. The key problem is that available memory is small than
> 2048 x 4k, while there are still a lot of VFS cache. The VFS cache can
> be freed, but kernel allocation function ignores it. See the new test
> application.


Which kernel allocation function? If you can provide more details I'd
like to get to the bottom of this.


I posted it here, I think you missed it. So forwarded it to you.

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.


Also, do you happen to know of a reasonable toolchain + emulator setup
that I could test the nommu kernel with?


A project named skyeye.
http://www.skyeye.org/index.shtml

Thanks, I'll give that one a try.

Nick

--
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com -
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/