|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH] xen-netfront: delay gARP until backend switches to C
On 06/28/11 15:33, Ian Campbell wrote:
> netback already waits (or should...) for hotplug-status to fire with
> "connected" before moving to state XenbusStateConnected. See
> hotplug_status_changed in drivers/net/xen-netback/xenbus.c. You need
> either the netback in upstream or something newer than 43223efd9bfd (C
> Feb 2010) if you are using e.g. xen.git#xen/next-2.6.32. That commit
> fixes pretty much the issue you describe.
>
> I expected that netfront waited for the backend to hit
> XenbusStateConnected before sending the grat ARP but instead I find it
> happens when the backend hits XenbusStateInitWait. I'm not sure if that
> is a problem -- it appears to have been done this way since forever
> (even back in the classic Xen kernels) and I've never noticed a gARP go
> missing in the way you describe, but perhaps something isn't quite
> matching up any more.
In addition to backporting 43223efd9bfd to the RHEL-5 host side, we needed the
following in the RHEL-6 guest, in order to fix the network outage after live
migration. The patch is for xen/next-2.6.32. I also tested a Fedora-15 guest
(without the patch), and the backport to the host side alone was not sufficient
there either.
Thanks for the help and for considering this one.
Signed-off-by: Laszlo Ersek <lersek@xxxxxxxxxx>
---
drivers/net/xen-netfront.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index 3f71199..214c3a4 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -1732,7 +1732,6 @@ static void netback_changed(struct xenbus_device *dev,
case XenbusStateInitialised:
case XenbusStateReconfiguring:
case XenbusStateReconfigured:
- case XenbusStateConnected:
case XenbusStateUnknown:
case XenbusStateClosed:
break;
@@ -1743,6 +1742,9 @@ static void netback_changed(struct xenbus_device *dev,
if (xennet_connect(netdev) != 0)
break;
xenbus_switch_state(dev, XenbusStateConnected);
+ break;
+
+ case XenbusStateConnected:
netif_notify_peers(netdev);
break;
--
1.7.4.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] [PATCH] xen-netfront: delay gARP until backend switches to Connected,
Laszlo Ersek <=
|
|
|
|
|