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

Nick Piggin
2006-11-29T09:30:47Z

Aubrey wrote:
> On 11/29/06, Sonic Zhang <sonic.adi@gmail.com> wrote:
>
>> Forward to the mailing list.
>>
>> > On 11/27/06, Nick Piggin <nickpiggin@yahoo.com.au> 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