"Michael S. Tsirkin" 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 allocatio
David Miller writes:
> I'm not going to apply this vmalloc patch, because if I apply it the
> fundamental problem here just gets swept under the carpet even longer.
No problem, I'll keep this as a local change until vhost-net's allocation
strategy gains some sanity.
Thanks.
--
To unsubscribe fr
From: "Michael S. Tsirkin"
Date: Wed, 23 Jan 2013 23:04:11 +0200
> Maybe we should try and reduce our memory usage,
> I will look into this.
As has been pointed out, 32K of the size is from those iovecs in
the queues.
The size of this structure is frankly offensive, and even if you add
some lev
On Friday, January 25, 2013 03:03:13 AM Cong Wang wrote:
> ["Followup-To:" header set to gmane.linux.network.]
>
> On Wed, 23 Jan 2013 at 20:46 GMT, Romain Francoise
wrote:
> > Creating a vhost-net device allocates an object large enough (34320 bytes
> > on x86-64) to trigger an order-4 allocati
["Followup-To:" header set to gmane.linux.network.]
On Wed, 23 Jan 2013 at 20:46 GMT, 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 all
> > I think this means that kmalloc() is likely to be faster
> > (if it doesn't have to sleep), but that vmalloc() is
> > allocating from a much larger resource.
> >
> > This make me that that large allocations that are not
> > temporary should probably be allocated with vmalloc().
>
> vmalloc has
On Thu, Jan 24, 2013 at 09:45:50AM -, David Laight wrote:
> > + n = kmalloc(sizeof *n, GFP_KERNEL | __GFP_NOWARN);
> > + if (!n)
> > + n = vmalloc(sizeof *n);
>
> I'm slightly confused by this construct.
> I thought kmalloc(... GFP_KERNEL) would sleep waiting for
> memory (rather
> + n = kmalloc(sizeof *n, GFP_KERNEL | __GFP_NOWARN);
> + if (!n)
> + n = vmalloc(sizeof *n);
I'm slightly confused by this construct.
I thought kmalloc(... GFP_KERNEL) would sleep waiting for
memory (rather than return NULL).
I realise that (for multi-page sizes) that kmallo
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
> .
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,
10 matches
Mail list logo