Memory allocation problems on RHEL 6.3 kernel version 2.6.32-279.el6.x86_64

Amit Agarwal amit at amit-agarwal.co.in
Wed Jul 9 08:23:29 EDT 2014


Hi All,

We are running a 32 bit application on RHEL6.3-64 bit OS with kernel 
version 2.6.32-279.el6.x86_64.

While running this application we see the following when running under 
strace:
mmap(offset=33230848, len=2068480) failed with errno=12 for the file 
<so file name>

The system has enough RAM, total 16GB and about 12 GB free. We checked 
buddyinfo on the system, when the application is running and see the 
below trend:
Node 0, zone   Normal   5200  21396  21389  21516  16202  12770   9054  
4459   1430    168    313
Node 0, zone   Normal   5231  21395  21389  21516  16202  12770   9054  
4459   1430    168    313
Node 0, zone   Normal   5128  21401  21389  21516  16202  12770   9054  
4459   1430    168    313
Node 0, zone   Normal   5060  21405  21391  21516  16202  12770   9054  
4459   1430    168    313
..............
Node 0, zone   Normal    483  17946  21342  21516  16202  12770   9054  
4459   1430    168    313
Node 0, zone   Normal    315  17937  21342  21516  16202  12770   9054  
4459   1430    168    313
Node 0, zone   Normal    345  17891  21352  21516  16202  12770   9054  
4459   1430    168    313
Node 0, zone   Normal    278  17785  21352  21516  16202  12770   9054  
4459   1430    168    313


At this point the application crashes with mmap error.


Page Type information on the system:
Page block order: 9
Pages per block:  512

Free pages count per migrate type at order       0      1      2      3 
     4      5      6      7      8      9     10
Node    0, zone      DMA, type    Unmovable      1      0      0      1 
     0      0      1      0      0      0      0
Node    0, zone      DMA, type  Reclaimable      0      0      0      0 
     0      0      0      0      0      0      0
Node    0, zone      DMA, type      Movable      0      0      0      0 
     0      0      0      0      0      0      3
Node    0, zone      DMA, type      Reserve      0      0      0      0 
     0      0      0      0      0      1      0
Node    0, zone      DMA, type      Isolate      0      0      0      0 
     0      0      0      0      0      0      0
Node    0, zone    DMA32, type    Unmovable    410    261    133     51 
    24     14      7      2      0      0      0
Node    0, zone    DMA32, type  Reclaimable   2573   1806   1108    889 
   522    175     31      0      0      0      0
Node    0, zone    DMA32, type      Movable    408    352    345    341 
   328    312    310    260    216    180    356
Node    0, zone    DMA32, type      Reserve      0      0      0      0 
     0      0      0      0      0      2      0
Node    0, zone    DMA32, type      Isolate      0      0      0      0 
     0      0      0      0      0      0      0
Node    0, zone   Normal, type    Unmovable    434    788    518    137 
    58     24     13      4      5      0      0
Node    0, zone   Normal, type  Reclaimable      1    110   2136   3212 
   414     25      8      7      8      0      0
Node    0, zone   Normal, type      Movable   8135  20535  17946  18171 
15732  12719   9033   4448   1417    169    312
Node    0, zone   Normal, type      Reserve      0      0      0      0 
     0      0      0      0      0      0      1
Node    0, zone   Normal, type      Isolate      0      0      0      0 
     0      0      0      0      0      0      0

Number of blocks type     Unmovable  Reclaimable      Movable      
Reserve      Isolate
Node 0, zone      DMA            1            0            6            
1            0
Node 0, zone    DMA32           11           79         1436            
2            0
Node 0, zone   Normal          188          337         6129            
2            0


When we are running the same application on other system, it comes up. 
So, it has to do with memory allocation setting of some sort.

So, Is there some setting that we can use to allow the kernel to 
allocate the 313 - 4M  pages that are free for 4k memory allocations? If 
so, what should we change on the system?

Will setting vm.zone_reclaim_mode to 1 help here?

Do I need to provide more information, if yes, what?

-- 
Thanks,
-aka
http://blog.amit-agarwal.co.in




More information about the Kernelnewbies mailing list