Re: Is: SKB_MAX_LEN bites again. Was: Re: bug disabling guest interface

ANNIE LI
Sun, 10 Mar 2013 04:58:09 -0000

On 2013-3-9 20:53, Sander Eikelenboom wrote:
> Saturday, March 9, 2013, 3:57:16 AM, you wrote:
>
>>>> - change MAX_SKB_FRAGS to 19 to accommodate all guests
>> Changing MAX_SKB_FRAGS is *not* an option upstream. This might be a
>> useful local hack but we need to drop the idea as a long term fix.
>>> Ugh. The negotiations between host and guest is probably the best
>>> choice. The issues you are going to hit are that you might need
>>> to redo the skbs to match what the frontend''s max is.
>> IMHO the right fix is for netback to coalesce as it copies from the
>> frontend if it needs to do so, it is copying anyway so it should be
>> cheap enough. I thought we had discussed this and someone was working
on
>> implementing it. If not Annie then perhaps it was Matt or Siva (both
now
>> CC''d)
>> If necessary netback could even allocate a larger order head in order
to
>> accommodate very large packets, but I don''t expect that to be
required
>> to fix the immediate issue we are seeing (but gives flexibility)
>> This should get us past the immediate issue of the upstream change from
> 18->>16  frags thing. Longer term the negotiation will allow us to
avoid
>> future incompatible changes in guest and host network stacks, as well
as
>> allowing frontends on other OSes (in particular Windows) to havea
better
>> chance of to DTRT.
>>
>>> Annie, Wei, Ian - were there some RFC patches floating around
>>> for this?
> I think you refer to this thread ?
>
> http://lists.xen.org/archives/html/xen-devel/2013-01/msg00198.html
>
> And i see the annie''s patch and my response haven''t made
the list because annie dropped xen-devel from the response.
> I will forward them ..

Hi Sander,

This is a patch in which I tried to do some fix in netfront, the thread
you mentioned is facing the same issue with this one.

Thanks
Annie
>
> --
> Sander
>
>
>
>
>
>>>> diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
>>>> index 821c7f4..82de0f5 100644
>>>> --- a/include/linux/skbuff.h
>>>> +++ b/include/linux/skbuff.h
>>>> @@ -143,8 +143,8 @@ struct sk_buff;
>>>>    * Since GRO uses frags we allocate at least 16 regardless of
page
>>>>    * size.
>>>>    */
>>>> -#if (65536/PAGE_SIZE + 1)<  16
>>>> -#define MAX_SKB_FRAGS 16UL
>>>> +#if (65536/PAGE_SIZE + 1)<  19
>>>> +#define MAX_SKB_FRAGS 19UL
>>>>   #else
>>>>   #define MAX_SKB_FRAGS (65536/PAGE_SIZE + 1)
>>>>   #endif
>>>>
>>>>
>>>> _______________________________________________
>>>> Xen-devel mailing list
>>>> Xen-devel@lists.xen.org
>>>> http://lists.xen.org/xen-devel
>>>>
>
>
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel