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

Re: [Xen-devel] xennet: skb rides the rocket: 20 slots



Monday, January 7, 2013, 11:55:15 AM, you wrote:

> On Fri, 2013-01-04 at 16:28 +0000, Sander Eikelenboom wrote:
>> Hi Ian,

> I'm not actually the netfront maintainer. Adding Konrad. Annie too since
> IIRC she was at one point looking at various buffer coalescing schemes.

Ah ok, i thought you were :-) sorry

>> Today i fired up an old VM with a bittorrent client, trying to
>> download some torrents.

> How old? Which kernel?

3.8.0-rc2 at the moment, it's a PV guest.

>> I seem to be hitting the unlikely case of "xennet: skb rides the
>> rocket: xx slots" and this results in some dropped packets in domU, I
>> don't see any warnings in dom0.
>> 
>> I have added some extra info, but i don't have enough knowledge if
>> this could/should be prevented from happening ?

> MAX_SKB_FRAGS has never, AFAIK, been as big as 19 or 20 so I'm not sure
> this can have ever worked.

> These SKBs seem to be pretty big (not quite 64KB), seemingly most of the
> data is contained in a smallish number of frags, which suggests compound
> pages and therefore a reasonably modern kernel?

> This probably relates somewhat to the issues described in the
> "netchannel vs MAX_SKB_FRAGS" thread last year, or at least the solution
> to that would necessarily involve fixing this issue.

> In the meantime you could try disabling sg and/or various offloads for
> that domain's vif.

Will do.


>> [16798.629141] xennet: skb rides the rocket: 19 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:18 offset:106 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:4 
>> page_size:4096 prot:0800
>> [16800.575182] xennet: skb rides the rocket: 19 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:18 offset:2154 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:4 
>> page_size:4096 prot:0800
>> [16801.589166] xennet: skb rides the rocket: 20 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:19 offset:2154 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:5 
>> page_size:4096 prot:0800
>> [16803.279039] xennet: skb rides the rocket: 19 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:18 offset:106 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:3 
>> page_size:4096 prot:0800
>> [16809.973268] xennet: skb rides the rocket: 19 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:18 offset:2154 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:4 
>> page_size:4096 prot:0800
>> [16811.420048] xennet: skb rides the rocket: 19 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:18 offset:2154 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:6 
>> page_size:4096 prot:0800
>> [16814.872686] xennet: skb rides the rocket: 19 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:18 offset:106 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:5 
>> page_size:4096 prot:0800
>> [16815.359099] xennet: skb rides the rocket: 21 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:20 offset:2154 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:5 
>> page_size:4096 prot:0800
>> [16825.851906] xennet: skb rides the rocket: 20 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:19 offset:106 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:4 
>> page_size:4096 prot:0800
>> [16828.295083] xennet: skb rides the rocket: 19 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:18 offset:2154 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:5 
>> page_size:4096 prot:0800
>> [16837.386684] xennet: skb rides the rocket: 19 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:18 offset:106 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:4 
>> page_size:4096 prot:0800
>> [16838.609683] xennet: skb rides the rocket: 20 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:19 offset:106 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:4 
>> page_size:4096 prot:0800
>> [16841.783729] xennet: skb rides the rocket: 19 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:18 offset:106 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:6 
>> page_size:4096 prot:0800
>> [16843.841678] xennet: skb rides the rocket: 20 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:19 offset:2154 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:4 
>> page_size:4096 prot:0800
>> [16849.847614] xennet: skb rides the rocket: 19 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:18 offset:3690 skb_headlen:54 
>> skb->len:64294, skb->data_len:64240 skb->truesize:65008 nr_frags:4 
>> page_size:4096 prot:0800
>> [16853.787128] xennet: skb rides the rocket: 20 slots MAX_SKB_FRAGS: 17 
>> div_roundup:1 xennet_count_skb_frag_slots:19 offset:2154 skb_headlen:1622 
>> skb->len:64294, skb->data_len:62672 skb->truesize:64976 nr_frags:4 
>> page_size:4096 prot:0800
>> 
>> # ifconfig
>> eth0      Link encap:Ethernet  HWaddr 00:16:3e:c4:20:46
>>           inet addr:192.168.1.12  Bcast:192.168.1.255  Mask:255.255.255.0
>>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>>           RX packets:9090214 errors:0 dropped:0 overruns:0 frame:0
>>           TX packets:5902090 errors:0 dropped:304 overruns:0 carrier:0
>>           collisions:0 txqueuelen:1000
>>           RX bytes:19757934770 (18.4 GiB)  TX bytes:16855238200 (15.6 GiB)
>>           Interrupt:25
>> 
>> 
>> 
>> 
>> diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
>> index c26e28b..50ac403 100644
>> --- a/drivers/net/xen-netfront.c
>> +++ b/drivers/net/xen-netfront.c
>> @@ -552,7 +552,11 @@ static int xennet_start_xmit(struct sk_buff *skb, 
>> struct net_device *dev)
>>                 xennet_count_skb_frag_slots(skb);
>>         if (unlikely(slots > MAX_SKB_FRAGS + 1)) {
>>                 net_alert_ratelimited(
>> -                       "xennet: skb rides the rocket: %d slots\n", slots);
>> +                       "xennet: skb rides the rocket: %d slots 
>> MAX_SKB_FRAGS: %d div_roundup:%d xennet_count_skb_frag_slots:%d offset:%d 
>> skb_headlen:%d skb->len:%d, skb->data_len:%d skb->truesize:%d nr_frags:%d 
>> page_size:%d prot:%04x \n
>> +                             slots, MAX_SKB_FRAGS,DIV_ROUND_UP(offset + 
>> len, PAGE_SIZE),
>> +                             xennet_count_skb_frag_slots(skb), offset, len, 
>> skb->len,
>> +                             skb->data_len, skb->truesize, 
>> skb_shinfo(skb)->nr_frags,
>> +                             PAGE_SIZE, ntohs(skb->protocol));
>>                 goto drop;
>>         }
>> 





_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.