> I have problem with page allocation failure on SUSE Linux Enterprise Server 
> 11 (s390x) VERSION = 11 PATCHLEVEL = 4

> Logs on messages:

> kernel: WebContainer : : page allocation failure: order:4, mode:0x4d0
> kernel: mount.nfs: page allocation failure: order:4, mode:0x4d0

When the kernel requests memory, in some cases it needs it in contiguous 
chunks. When the kernel reports on the size of the chunk that it needs it uses 
this "order" - e.g. your order "4" means that the kernel asked for 2^4 pages = 
2^4 * 4k = 64KB. If your kernel runs long enough (sometimes downloading a large 
file over SCP is enough to cause this, not sure why) the memory used may become 
fragmented so there is no free chunk that is large enough. In this case the 
kernel will try to free up some caches and buffers to see if a contiguous chunk 
could be reclaimed. If it does not succeed after trying several strategies, it 
will just fail and you will get the "page allocation failure" that you are 
seeing. This article has a good description:

https://utcc.utoronto.ca/~cks/space/blog/linux/DecodingPageAllocFailures

I once researched a similar problem and my conclusion was that there is no good 
way out. The kernel developers try to not use large contiguous chunks, but 
there are still drivers that do. Here are a few more things that I have 
discovered during my research that you may find useful:

- If you want to see to what extent your memory is fragmented, use this command:

echo m > /proc/sysrq-trigger

Then look at the output of dmesg, you will see statistics about kernel memory 
usage. The doc for this is here: 
https://www.kernel.org/doc/Documentation/sysrq.txt

- If you want to see what strategies the kernel has for trying to free up 
chunks of contiguous memory, see mm/page_alloc.c, mm/vmscan.c in the kernel 
sources.
- One of the kernel drivers that need large contiguous chunks of memory is the 
vmcp driver. If you run vmcp --buffer=1M often enough you'll eventually run 
into this.

Good luck,
Tomas 

----------------------------------------------------------------------
For LINUX-390 subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO LINUX-390 or visit
http://www.marist.edu/htbin/wlvindex?LINUX-390
----------------------------------------------------------------------
For more information on Linux on System z, visit
http://wiki.linuxvm.org/

Reply via email to