Re: [PATCH] virtio_net: indicate oom when addbuf returns failure
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2010-06-07 09:15:18
Also in:
virtualization
On Mon, Jun 07, 2010 at 08:24:41AM +1000, Herbert Xu wrote:
On Sun, Jun 06, 2010 at 11:13:00PM +0300, Michael S. Tsirkin wrote:quoted
Actually this code looks strange: Note that add_buf inicates out of memory condition with a positive return value, and ring full (which is not an error!) with -ENOSPC.Indeed, this ultimately came from commit 9ab86bbcf8be755256f0a5e994e0b38af6b4d399 Author: Shirley Ma [off-list ref] Date: Fri Jan 29 03:20:04 2010 +0000 virtio_net: Defer skb allocation in receive path Date: Wed, 13 Jan 2010 12:53:38 -0800 (Greg, please don't apply this even though I've just given you the upstream commit ID that you were asking for :) where it confuses a memory allocation error with an add_buf failure.quoted
Possibly the right thing to do is to 1. handle ENOMEM specially 2. fix add_buf to return ENOMEM on errorI think we should make it so that only a memory allocation error is returned as before. There is no need for returning the add_buf error unless add_buf is now doing an allocation itself that needs to be retried.
That's what my patch did, right? Ack it?
Thanks, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} [off-list ref] Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt