Re: [Xen-devel] compound skb frag pages appearing in start_xmit
flat view
From: Sander Eikelenboom <hidden>
Date: 2012-10-10 14:49:58
Wednesday, October 10, 2012, 3:09:58 PM, you wrote:
On Wed, 2012-10-10 at 11:13 +0100, Ian Campbell wrote:quoted
I haven't tackled netfront yet.
I seem to be totally unable to reproduce the equivalent issue on the netfront xmit side, even though it seems like the loop in xennet_make_frags ought to be obviously susceptible to it.
Konrad, Sander, are either of you able to repro, e.g. with:
Hmrrrmm i don't see any traces, only strange behaviour .. - i can connect to guests by ssh, but it's sluggish, and sometimes stops working - The guest seem to keep trying to connect to netback: [ 658.276719] xen_bridge: port 2(vif40.0) entered forwarding state [ 658.282258] xen_bridge: port 2(vif40.0) entered forwarding state [ 663.945964] xen_bridge: port 7(vif39.0) entered forwarding state [ 669.674277] xen_bridge: port 2(vif40.0) entered disabled state [ 669.680290] device vif40.0 left promiscuous mode [ 669.685464] xen_bridge: port 2(vif40.0) entered disabled state [ 672.857222] device vif41.0 entered promiscuous mode [ 673.166254] xen-blkback:ring-ref 8, event-channel 9, protocol 1 (x86_64-abi) [ 673.176368] xen_bridge: port 2(vif41.0) entered forwarding state [ 673.182042] xen_bridge: port 2(vif41.0) entered forwarding state [ 674.439725] xen_bridge: port 7(vif39.0) entered disabled state [ 674.445708] device vif39.0 left promiscuous mode [ 674.450955] xen_bridge: port 7(vif39.0) entered disabled state [ 677.726040] device vif42.0 entered promiscuous mode [ 678.053381] xen-blkback:ring-ref 8, event-channel 9, protocol 1 (x86_64-abi) [ 678.062804] xen_bridge: port 7(vif42.0) entered forwarding state [ 678.068433] xen_bridge: port 7(vif42.0) entered forwarding state [ 688.224736] xen_bridge: port 2(vif41.0) entered forwarding state [ 693.080557] xen_bridge: port 7(vif42.0) entered forwarding state [ 700.786276] xen_bridge: port 7(vif42.0) entered disabled state [ 700.792484] device vif42.0 left promiscuous mode [ 700.802409] xen_bridge: port 7(vif42.0) entered disabled state [ 704.133606] device vif43.0 entered promiscuous mode [ 704.460160] xen-blkback:ring-ref 8, event-channel 9, protocol 1 (x86_64-abi) [ 704.469800] xen_bridge: port 7(vif43.0) entered forwarding state [ 704.475303] xen_bridge: port 7(vif43.0) entered forwarding state [ 719.493788] xen_bridge: port 7(vif43.0) entered forwarding state [ 726.302456] xen_bridge: port 7(vif43.0) entered disabled state [ 726.308898] device vif43.0 left promiscuous mode [ 726.314029] xen_bridge: port 7(vif43.0) entered disabled state All the guests are already up, but this keeps on going and going and going ....
quoted hunk ↗ jump to hunk
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index b06ef81..8a3f770 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c@@ -462,6 +462,8 @@ static void xennet_make_frags(struct sk_buff *skb, struct net_device *dev, ref = gnttab_claim_grant_reference(&np->gref_tx_head); BUG_ON((signed short)ref < 0); + BUG_ON(PageCompound(skb_frag_page(frag))); + mfn = pfn_to_mfn(page_to_pfn(skb_frag_page(frag))); gnttab_grant_foreign_access_ref(ref, np->xbdev->otherend_id, mfn, GNTMAP_readonly);
My repro for netback was just to netcat a wodge of data from dom0->domU but going the other way doesn't seem to trigger.