[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] SG off on domU middle node drops packets
On 26/05/15 08:55, Lennart Schulte wrote: > Hi, > I use a Xen domU with vanilla Linux 3.19 kernel as a middle node. SG is > switched off via ethtool. I get random packet drops for about 7% of > small packets (pings, TCP ACKs/SYNs/little payload). > From the code in Linux 4.0 it seems that the behavior should be the same. Why would you turn this option off? > I posted on Xen-users before with more information: > http://lists.xen.org/archives/html/xen-users/2015-05/msg00170.html > > I narrowed down the issue, and the below patch seems to work. Any > comments are highly welcome. > > Thanks, > Lennart > > > diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c > index d8c1076..f5e403b 100644 > --- a/drivers/net/xen-netfront.c > +++ b/drivers/net/xen-netfront.c > @@ -611,11 +611,19 @@ static int xennet_start_xmit(struct sk_buff *skb, > struct net_device *dev) > spin_lock_irqsave(&queue->tx_lock, flags); > > if (unlikely(!netif_carrier_ok(dev) || > - (slots > 1 && !xennet_can_sg(dev)) || > netif_needs_gso(dev, skb, netif_skb_features(skb)))) { > spin_unlock_irqrestore(&queue->tx_lock, flags); > goto drop; > } > + if (unlikely(slots > 1 && !xennet_can_sg(dev))) { > + if (skb_linearize(skb)) { > + spin_unlock_irqrestore(&queue->tx_lock, flags); > + goto drop; > + } > + data = skb->data; > + offset = offset_in_page(data); > + len = skb_headlen(skb); > + } Looks ok, can you send a proper patch to devel and xen-devel, please? David _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |