public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Shailendra Tripathi <stripathi@agami.com>
To: Luca Maranzano <liuk001@gmail.com>
Cc: xfs@oss.sgi.com
Subject: Re: Page allocation failure writing to an XFS volume via NFS on CentOS 4.3
Date: Mon, 24 Jul 2006 17:59:36 +0530	[thread overview]
Message-ID: <44C4BD30.2050507@agami.com> (raw)
In-Reply-To: <68559cef0607240449m5005231t78f05673bb8309e2@mail.gmail.com>

Hi Luca,
         Almost all of your memory is being used for page cache which is 
good definitely for any I/O intensive applications. When you set 
min_free_kbytes to a very low number, it means that the pages used for 
various things (slab, cached pages) are not started to get cleaned up 
until it goes down to a very low level. So, it is true that memory 
allocation might fail if you set to to very low number

/proc/meminfo:
MemTotal:      1035832 kB
MemFree:         12568 kB
Buffers:         10468 kB
Cached:         968336 kB
SwapCached:       4716 kB

However, there is another culprit here. The memory cleaner code should 
typically avoid doing memory allocation in cleanup path; otherwise it 
may fail. dm_mod is splitting the bio and, hence, requires the page 
allocation which is definitely bad in such circumstances where memory is 
chewed up to the last pages. It so happened the bio_alloc pool was empty 
and required to be filled up.
For now, you should set min_free_kbytes to at least 8*1024 and 
preferably to [16-20] * 1024.
   As far as XFS memory messages are concerned, those message are 
indicating that the memory is either running low or so fragmented that 
the requested page order could not be allocated in reasonable time.

     kswapd0: page allocation failure. order:0, mode:0xd0
[<c014c48d>] __alloc_pages+0x2e1/0x2f7
[<c014c4bb>] __get_free_pages+0x18/0x24
[<c014f9a2>] kmem_getpages+0x15/0x94
[<c015065f>] cache_grow+0x107/0x233
[<c0150982>] cache_alloc_refill+0x1f7/0x227
[<c0150bf4>] kmem_cache_alloc+0x46/0x4c --> Memory allocation request 
for bio_alloc pool.
[<c014ac4d>] mempool_alloc+0xb6/0x1f9
[<c011e867>] autoremove_wake_function+0x0/0x2d
[<c011e867>] autoremove_wake_function+0x0/0x2d
[<f8aa86ea>] EmsPlatformCreateIo+0x2a/0x60 [emcp]
[<f8aa8978>] allocPio+0x18/0x40 [emcp]
[<f8aa89e7>] emcp_pseudo_mrf+0x27/0x60 [emcp]
[<c02518a6>] generic_make_request+0x190/0x1a0
[<c016dff5>] bio_clone+0x8b/0xa3
[<f8873370>] __map_bio+0x34/0xb4 [dm_mod]
[<f8873579>] __clone_and_map+0xc3/0x2c9 [dm_mod]
[<c014c35d>] __alloc_pages+0x1b1/0x2f7
[<f8873829>] __split_bio+0xaa/0x108 [dm_mod]
[<f8873965>] dm_request+0xde/0xf1 [dm_mod]
[<c02518a6>] generic_make_request+0x190/0x1a0
[<c011e867>] autoremove_wake_function+0x0/0x2d
[<c025195a>] submit_bio+0xa4/0xac
[<c016de25>] bio_alloc+0x100/0x168
[<c016d7da>] submit_bh+0x13e/0x163
[<f93a4d6d>] xfs_submit_page+0x84/0xa8 [xfs]
[<f93a4f71>] xfs_convert_page+0x1e0/0x1f4 [xfs]
[<f93a4fbe>] xfs_cluster_write+0x39/0x43 [xfs]
[<f93a5488>] xfs_page_state_convert+0x4c0/0x50c [xfs]
[<f93a598a>] linvfs_writepage+0x91/0xc6 [xfs]
[<c0152fac>] pageout+0x88/0xc5
[<c01531f2>] shrink_list+0x209/0x4ea
[<c01536d2>] shrink_cache+0x1ff/0x454
[<c0152d91>] shrink_slab+0x7d/0x14c
[<c015408c>] shrink_zone+0x8f/0x9e
[<c015442f>] balance_pgdat+0x197/0x2cb  --> Cleaner code


Regards,
Shailendra

Luca Maranzano wrote:
> Could it be an issue about the min_free_kbytes kernel parameter?
> 
> On my server its current value is 957, but I've read that this could
> lead to kernel memory allocation failure even if there is actually
> enough RAM available.
> 
> Since my trouble seem to be correlated to NFS access, could it be an
> interaction between network and disk I/O to trigger this problem?
> 
> Thanks again.
> Regards,
> Luca
> 
> 
> On 7/21/06, Chris Wedgwood <cw@f00f.org> wrote:
> 
>> On Fri, Jul 21, 2006 at 02:19:34PM +0200, Luca Maranzano wrote:
>>
>> > kswapd0: page allocation failure. order:0, mode:0xd0
>>
>> you're out of memory, see what's being so piggy
>>
> 
> 

      reply	other threads:[~2006-07-24 14:05 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-21 12:19 Page allocation failure writing to an XFS volume via NFS on CentOS 4.3 Luca Maranzano
2006-07-21 16:13 ` Chris Wedgwood
2006-07-24 10:22   ` Luca Maranzano
2006-07-24 11:49   ` Luca Maranzano
2006-07-24 12:29     ` Shailendra Tripathi [this message]

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=44C4BD30.2050507@agami.com \
    --to=stripathi@agami.com \
    --cc=liuk001@gmail.com \
    --cc=xfs@oss.sgi.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