On Sun, Sep 12, 2010 at 04:45:44PM -0700, Gerald Turner wrote: > Hello, I have been experiencing random bridge failures with Xen domU's.
Presently I'm using this patch on top of -22
From: Jeremy Fitzhardinge <jeremy.fitzhardi...@citrix.com> Date: Fri, 10 Sep 2010 01:01:49 +0000 (+1000) Subject: xen/netfront: make smartpoll optional, and default off X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fjeremy%2Fxen.git;a=commitdiff_plain;h=d2312863e180f8058533776c0b78da6fed0c2346;hp=8b82e08a605d492142dc8d9541a0935342f0b683 xen/netfront: make smartpoll optional, and default off Smartpoll seems to have some reliability problems, so make it default to off for now. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardi...@citrix.com> --- diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index 1a2811e..6426bb81 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c @@ -53,6 +53,10 @@ static const struct ethtool_ops xennet_ethtool_ops; +static int use_smartpoll = 0; +module_param(use_smartpoll, int, 0600); +MODULE_PARM_DESC (use_smartpoll, "Use smartpoll mechanism if available"); + struct netfront_cb { struct page *page; unsigned offset; @@ -1538,7 +1542,7 @@ again: goto abort_transaction; } - err = xenbus_printf(xbt, dev->nodename, "feature-smart-poll", "%d", 1); + err = xenbus_printf(xbt, dev->nodename, "feature-smart-poll", "%d", use_smartpoll); if (err) { message = "writing feature-smart-poll"; goto abort_transaction; @@ -1631,11 +1635,14 @@ static int xennet_connect(struct net_device *dev) return -ENODEV; } - err = xenbus_scanf(XBT_NIL, np->xbdev->otherend, - "feature-smart-poll", "%u", - &np->smart_poll.feature_smart_poll); - if (err != 1) - np->smart_poll.feature_smart_poll = 0; + np->smart_poll.feature_smart_poll = 0; + if (use_smartpoll) { + err = xenbus_scanf(XBT_NIL, np->xbdev->otherend, + "feature-smart-poll", "%u", + &np->smart_poll.feature_smart_poll); + if (err != 1) + np->smart_poll.feature_smart_poll = 0; + } if (np->smart_poll.feature_smart_poll) { hrtimer_init(&np->smart_poll.timer, CLOCK_MONOTONIC,