Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

dom0 -> domU packet loss



For some time, I've noticed that many of my NetBSD domUs experience much
packet loss. This appears to be because the domU is not pulling the packets
off the ring fast enough and the dom0 needs to drop some of the packets.

  # ssh san3d netstat -i
  Kernel Interface table
  Iface  MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
  vif24 1500 0  77346351      0      0      0 69931898      0  32234      0 BMRU

The "TX-DRP" column is high for some of my NetBSD domUs. This is particularly
bad on timesharing hosts which use a lot of NFS.

I noticed that Linux is requesting "feature-rx-notify" in its network
driver to request the dom0 use an additional buffer to reduce packet
loss. I added this to some of my NetBSD hosts and I'm no longer getting
drops.

Should this be added to NetBSD? Is there anything else the driver needs
to do when requesting this feature?

Thanks.

- Brian

----------------------

diff -u if_xennet_xenbus.c.orig if_xennet_xenbus.c
--- if_xennet_xenbus.c.orig    2009-03-07 22:12:50.000000000 -0500
+++ if_xennet_xenbus.c 2009-04-14 20:13:23.000000000 -0400
@@ -461,6 +461,12 @@
                goto abort_transaction;
        }
        error = xenbus_printf(xbt, sc->sc_xbusd->xbusd_path,
+           "feature-rx-notify", "%u", 1);
+       if (error) {
+               errmsg = "writing feature-rx-notify";
+               goto abort_transaction;
+       }
+       error = xenbus_printf(xbt, sc->sc_xbusd->xbusd_path,
            "event-channel", "%u", sc->sc_evtchn);
        if (error) {
                errmsg = "writing event channel";



Home | Main Index | Thread Index | Old Index