Messages in this thread | | | Date | Wed, 8 Jan 2014 14:13:12 +0000 | From | Zoltan Kiss <> | Subject | Re: [PATCH net-next v3 6/9] xen-netback: Handle guests with too many frags |
| |
On 08/01/14 13:54, Eric Dumazet wrote: > On Wed, 2014-01-08 at 13:49 +0000, Zoltan Kiss wrote: >> On 08/01/14 02:12, Eric Dumazet wrote: >>> On Wed, 2014-01-08 at 00:10 +0000, Zoltan Kiss wrote: >>> >>>> >>>> + if (skb_shinfo(skb)->frag_list) { >>>> + nskb = skb_shinfo(skb)->frag_list; >>>> + xenvif_fill_frags(vif, nskb, INVALID_PENDING_IDX); >>>> + skb->len += nskb->len; >>>> + skb->data_len += nskb->len; >>>> + skb->truesize += nskb->truesize; >>>> + skb_shinfo(skb)->tx_flags |= SKBTX_DEV_ZEROCOPY; >>>> + skb_shinfo(nskb)->tx_flags |= SKBTX_DEV_ZEROCOPY; >>>> + vif->tx_zerocopy_sent += 2; >>>> + nskb = skb; >>>> + >>>> + skb = skb_copy_expand(skb, >>>> + 0, >>>> + 0, >>>> + GFP_ATOMIC | __GFP_NOWARN); >>> >>> skb can be NULL here >> >> Thanks, fixed that. > > BTW, I am not sure why you copy the skb. > > Is it to get rid of frag_list, and why ?
Yes, it is to get rid of the frag_list, just to be on the safe side. I'm not sure if it is normal to send a big skb with MAX_SKB_FRAGS frags plus an empty skb on the frag_list with one frag, so I just consolidate them here. This scenario shouldn't happen very often anyway, even guests which can send more than MAX_SKB_FRAGS slots tends to do it rarely.
Zoli
| |