WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH 4/6] xen/netback: Always pull through PKT_PROT_LE

To: Jan Beulich <JBeulich@xxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH 4/6] xen/netback: Always pull through PKT_PROT_LEN bytes into the linear part of an skb.
From: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Date: Wed, 24 Feb 2010 08:55:38 +0000
Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Wed, 24 Feb 2010 00:56:33 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4B84F1370200007800030EC0@xxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: Citrix Systems, Inc.
References: <1266943615.11737.6467.camel@xxxxxxxxxxxxxxxxxxxxxx> <1266943630-17002-4-git-send-email-ian.campbell@xxxxxxxxxx> <4B84F1370200007800030EC0@xxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Wed, 2010-02-24 at 08:28 +0000, Jan Beulich wrote: 
> Could you point out what problem this addresses?

It ensures that at least the TCP/IP headers will be pulled into the
linear part of the SKB. At least skb_checksum_setup relies on this and I
think it is a more generic assumption in at least some parts of the
network stack as well. The next patch increases PKT_PROT_LEN to include
the TCP options as well since we have observed cases where Windows
guests with PV drivers can generate a frame with a split at the point.

In the common case the first fragment should already contain
PKT_PROT_LEN bytes so I don't think it will trigger often.

Ian.

> 
> Thanks, Jan
> 
> >>> Ian Campbell <ian.campbell@xxxxxxxxxx> 23.02.10 17:47 >>>
> Previously PKT_PROT_LEN would only have an effect on the first fragment.
> 
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> ---
>  drivers/xen/netback/netback.c |   10 ++++++++++
>  1 files changed, 10 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/xen/netback/netback.c b/drivers/xen/netback/netback.c
> index 7e1dfd1..e668704 100644
> --- a/drivers/xen/netback/netback.c
> +++ b/drivers/xen/netback/netback.c
> @@ -1346,6 +1346,16 @@ static void net_tx_submit(void)
>  
>               netbk_fill_frags(skb);
>  
> +             /*
> +              * If the initial fragment was < PKT_PROT_LEN then
> +              * pull through some bytes from the other fragments to
> +              * increase the linear region to PKT_PROT_LEN bytes.
> +              */
> +             if (skb_headlen(skb) < PKT_PROT_LEN && skb_is_nonlinear(skb)) {
> +                     int target = min_t(int, skb->len, PKT_PROT_LEN);
> +                     __pskb_pull_tail(skb, target - skb_headlen(skb));
> +             }
> +
>               skb->dev      = netif->dev;
>               skb->protocol = eth_type_trans(skb, skb->dev);
>  



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel