2013-06-28 07:25:18

by Romain Francoise

[permalink] [raw]
Subject: Re: [PATCH] vhost-net: fall back to vmalloc if high-order allocation fails

"Michael S. Tsirkin" <[email protected]> writes:

> On Wed, Jan 23, 2013 at 09:46:47PM +0100, Romain Francoise wrote:
>> Creating a vhost-net device allocates an object large enough (34320 bytes
>> on x86-64) to trigger an order-4 allocation, which may fail if memory if
>> fragmented:
>>
>> libvirtd: page allocation failure: order:4, mode:0x2000d0
>> ...
>> SLAB: Unable to allocate memory on node 0 (gfp=0xd0)
>> cache: size-65536, object size: 65536, order: 4
>> node 0: slabs: 8/8, objs: 8/8, free: 0
>>
>> In that situation, rather than forcing the caller to use regular
>> virtio-net, try to allocate the descriptor with vmalloc().
>>
>> Signed-off-by: Romain Francoise <[email protected]>

> Thanks for the patch.
> Hmm, I haven't seen this.
> Maybe we should try and reduce our memory usage,
> I will look into this.

Did you get a chance to investigate this? I'm still getting the same
allocation failures with v3.10-rc7 after reverting my local patch.

Thanks.