Dear experts,

 

I have question about memory allocation failure on kernel 3.1.

(simply it seems there is available free memory, however “page allocation failure” happened)

 

While big data transfer, there is page allocation failure (please check attached log)

It happens on __alloc_skb().

Inside function, it allocates memory from skbuff_head_cache and size-xxxxxxx caches.

 

Here is my understanding, please correct me and advise.

From the kernel log, it failed when it tried to get 2^3*4K(=32KB) memory. (e.g. swapper: page allocation failure: order:3, mode:0x20)

From slabinfo, upper size-32768 does not have available slab, however buddy still has available memory.

so when 32KB(order:3) was required, slab(size-32768) should request memory from buddy.

e.g. 2 will be decreased to 1 on buddyinfo and size-32768 cache will get 32K memory from buddy.

So I can not understand why page alloc failure happened even if there are many available memory on buddy.

Please advise on it.

 

Here is dump info(page_allocation_failure_last_dump.txt), right after issue happens.

(FYI at alloc failure, order:3)

cat /proc/buddyinfo

Node 0, zone   Normal    949      0      0      2      3      3      0      0      1      1      0

 

cat /proc/slabinfo

slabinfo - version: 2.1

# name            <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>

skbuff_head_cache    552    700    192   20    1 : tunables  120   60    8 : slabdata     35     35    480 // sjoo: it looks enough.

size-4194304           0      0 4194304    1 1024 : tunables    1    1    0 : slabdata      0      0      0

size-2097152           0      0 2097152    1  512 : tunables    1    1    0 : slabdata      0      0      0

size-1048576           0      0 1048576    1  256 : tunables    1    1    0 : slabdata      0      0      0

size-524288            0      0 524288    1  128 : tunables    1    1    0 : slabdata      0      0      0

size-262144            0      0 262144    1   64 : tunables    1    1    0 : slabdata      0      0      0

size-131072            1      1 131072    1   32 : tunables    8    4    0 : slabdata      1      1      0

size-65536             4      4  65536    1   16 : tunables    8    4    0 : slabdata      4      4      0

size-32768            19     19  32768    1    8 : tunables    8    4    0 : slabdata     19     19      0

 

cat /proc/meminfo

MemTotal:         747864 kB

MemFree:            7652 kB

LowTotal:         747864 kB

LowFree:            7652 kB

 

 

 

 

 

Thanks,

Seongho(Shawn)

 


This email message is for the sole use of the intended recipient(s) and may contain confidential information.  Any unauthorized review, use, disclosure or distribution is prohibited.  If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.