Re: [PATCH 6/6] vhost_net: don't poll on -EFAULT

From: Michael S. Tsirkin
Date: Mon Apr 16 2012 - 03:16:39 EST


On Mon, Apr 16, 2012 at 02:08:33PM +0800, Jason Wang wrote:
> Currently, we restart tx polling unconditionally when sendmsg()
> fails. This would cause unnecessary wakeups of vhost wokers as it's
> only needed when the socket send buffer were exceeded.

Why is this a problem?

> Fix this by
> restart the tx polling only when sendmsg() returns value other than
> -EFAULT.
>
> Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx>
> ---
> drivers/vhost/net.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
> index 29abd65..035fa95 100644
> --- a/drivers/vhost/net.c
> +++ b/drivers/vhost/net.c
> @@ -262,7 +262,8 @@ static void handle_tx(struct vhost_net *net)
> UIO_MAXIOV;
> }
> vhost_discard_vq_desc(vq, 1);
> - tx_poll_start(net, sock);
> + if (err != -EFAULT)
> + tx_poll_start(net, sock);
> break;
> }
> if (err != len)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/