linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Aubrey <aubreylee@gmail.com>
Cc: Sonic Zhang <sonic.adi@gmail.com>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	vapier.adi@gmail.com
Subject: Re: The VFS cache is not freed when there is not enough free memory to allocate
Date: Fri, 01 Dec 2006 08:18:13 +1100	[thread overview]
Message-ID: <456F4A95.2090503@yahoo.com.au> (raw)
In-Reply-To: <6d6a94c50611300454g22196d2frec54e701abaebf17@mail.gmail.com>

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>

  reply	other threads:[~2006-11-30 21:18 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-22  7:51 Aubrey
2006-11-22  8:43 ` Peter Zijlstra
2006-11-22 10:02   ` Aubrey
2006-11-22 10:42     ` Peter Zijlstra
2006-11-22 11:09       ` Aubrey
2006-11-27  1:34       ` Mike Frysinger
2006-11-27  7:39     ` Nick Piggin
2006-11-29  7:17       ` Sonic Zhang
2006-11-29  9:27         ` Aubrey
2006-11-29  9:30           ` Nick Piggin
2006-11-30 12:54             ` Aubrey
2006-11-30 21:18               ` Nick Piggin [this message]
2006-12-01 10:00                 ` Aubrey
2006-11-28 13:29 Robin Getz
2006-11-28 14:41 ` Nick Piggin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=456F4A95.2090503@yahoo.com.au \
    --to=nickpiggin@yahoo.com.au \
    --cc=a.p.zijlstra@chello.nl \
    --cc=aubreylee@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=sonic.adi@gmail.com \
    --cc=vapier.adi@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox