All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dion Kant <g.w.kant@hunenet.nl>
To: Jan Beulich <JBeulich@suse.com>
Cc: Wei Liu <wei.liu2@citrix.com>,
	Ian Campbell <ian.campbell@citrix.com>,
	netdev@vger.kernel.org, stable@vger.kernel.org,
	xen-devel@lists.xen.org, davem@davemloft.net
Subject: Re: [PATCH] xen-netfront: pull on receive skb may need to happen earlier
Date: Mon, 08 Jul 2013 14:16:18 +0200	[thread overview]
Message-ID: <51DAAD92.4010708@hunenet.nl> (raw)
In-Reply-To: <51DAA9B202000078000E3357@nat28.tlf.novell.com>

On 07/08/2013 11:59 AM, Jan Beulich wrote:
>>>> On 05.07.13 at 16:53, Wei Liu <wei.liu2@citrix.com> wrote:
>> On Fri, Jul 05, 2013 at 10:32:41AM +0100, Jan Beulich wrote:
>>> --- a/drivers/net/xen-netfront.c
>>> +++ b/drivers/net/xen-netfront.c
>>> @@ -831,6 +831,15 @@ static RING_IDX xennet_fill_frags(struct
>>>  			RING_GET_RESPONSE(&np->rx, ++cons);
>>>  		skb_frag_t *nfrag = &skb_shinfo(nskb)->frags[0];
>>>  
>>> +		if (nr_frags == MAX_SKB_FRAGS) {
>>> +			unsigned int pull_to = NETFRONT_SKB_CB(skb)->pull_to;
>>> +
>>> +			BUG_ON(pull_to <= skb_headlen(skb));
>>> +			__pskb_pull_tail(skb, pull_to - skb_headlen(skb));
>>
>> skb_headlen is in fact "skb->len - skb->data_len". Looking at the
>> caller code:
>>
>>     while loop {
>>         skb_shinfo(skb)->frags[0].page_offset = rx->offset;
>> 	skb_frag_size_set(&skb_shinfo(skb)->frags[0], rx->status);
>> 	skb->data_len = rx->status;
>>
>> 	i = xennet_fill_frags(np, skb, &tmpq);
>>
>> 	/*                                                                           
>>                                                                   
>> 	 * Truesize is the actual allocation size, even if the                       
>>                                                                   
>> 	 * allocation is only partially used.                                        
>>                                                                   
>> 	 */
>> 	skb->truesize += PAGE_SIZE * skb_shinfo(skb)->nr_frags;
>> 	skb->len += skb->data_len;
>>     }
>>
>>     handle_incoming_packet();
>>
>> You seem to be altering the behavior of the original code, because in
>> your patch the skb->len is incremented before use, while in the original
>> code (which calls skb_headlen in handle_incoming_packet) the skb->len is
>> correctly set.
> 
> Right. So I basically need to keep skb->len up-to-date along with
> ->data_len. Just handed a patch to Dion with that done; I'll defer
> sending a v2 for the upstream code until I know the change works
> for our kernel.
> 
> Jan
> 

Jan,

I was wondering about the following.

In netif_poll(struct napi_struct *napi, int budget) the skb->cb is assigend,
but it may be clipped to RX_COPY_THRESHOLD

		NETFRONT_SKB_CB(skb)->pull_to = rx->status;
		if (NETFRONT_SKB_CB(skb)->pull_to > RX_COPY_THRESHOLD)
		      NETFRONT_SKB_CB(skb)->pull_to = RX_COPY_THRESHOLD;

How does this modification of NETFRONT_SKB_CB(skb)->pull_to propagates
or is this irrelevant?

Dion

  reply	other threads:[~2013-07-08 12:16 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <8511913.uMAmUdIO30@eistomin.edss.local>
2013-05-17  8:59 ` [Xen-users] kernel 3.9.2 - xen 4.2.2/4.3rc1 => BUG unable to handle kernel paging request netif_poll+0x49c/0xe8 Wei Liu
2013-05-17  9:08   ` Jan Beulich
2013-05-17  9:37   ` Eugene Istomin
2013-05-17  9:40     ` Eugene Istomin
2013-05-17 10:45     ` Jan Beulich
2013-05-17 12:03       ` Eugene Istomin
2013-05-17 12:25         ` Jan Beulich
2013-05-17 12:30           ` Eugene Istomin
2013-05-17 12:36             ` Jan Beulich
2013-05-17 12:52               ` Eugene Istomin
2013-05-17 13:00                 ` Eugene Istomin
2013-05-18 10:06                   ` Eugene Istomin
2013-05-20  6:52                     ` Eugene Istomin
2013-05-20  8:58                       ` Ian Campbell
2013-05-20  9:06                       ` Wei Liu
2013-05-20  9:17                         ` Eugene Istomin
2013-05-20  9:24                           ` Wei Liu
2013-05-21  9:55                   ` Jan Beulich
2013-05-21 11:09                     ` Eugene Istomin
2013-05-21 11:49                       ` Jan Beulich
2013-05-21 16:19                         ` Eugene Istomin
2013-05-31  3:37                           ` Eugene Istomin
2013-05-31  6:19                             ` Jan Beulich
2013-05-31  6:22                               ` Eugene Istomin
2013-05-31  8:20                               ` Wei Liu
2013-05-21 15:28                     ` Wei Liu
2013-05-31 15:47                       ` Wei Liu
2013-05-31 16:00                         ` Jan Beulich
2013-05-31 16:05                           ` Wei Liu
2013-07-04 13:43   ` Dion Kant
2013-07-04 14:18     ` Jan Beulich
2013-07-04 15:01     ` Wei Liu
2013-07-05  9:32       ` [PATCH] xen-netfront: pull on receive skb may need to happen earlier Jan Beulich
2013-07-05 14:53         ` Wei Liu
2013-07-05 14:53         ` Wei Liu
2013-07-07  1:10           ` David Miller
2013-07-07  1:10           ` David Miller
2013-07-08  9:59           ` Jan Beulich
2013-07-08 12:16             ` Dion Kant [this message]
2013-07-08 12:41               ` Jan Beulich
2013-07-08 12:41               ` Jan Beulich
2013-07-08 14:20             ` [Xen-devel] " Jan Beulich
2013-07-08 15:22               ` Eric Dumazet
2013-07-08 15:22               ` [Xen-devel] " Eric Dumazet
2013-07-09  7:47                 ` Jan Beulich
2013-07-09  7:47                 ` Jan Beulich
2013-07-08 15:48               ` [Xen-devel] " Wei Liu
2013-07-09  6:52                 ` Jan Beulich
2013-07-09  6:52                 ` [Xen-devel] " Jan Beulich
2013-07-09 16:51                   ` Wei Liu
2013-07-09 16:51                   ` [Xen-devel] " Wei Liu
2013-07-10  6:58                     ` Jan Beulich
2013-07-10  6:58                     ` [Xen-devel] " Jan Beulich
2013-07-10 10:04                       ` Wei Liu
2013-07-10 10:04                       ` [Xen-devel] " Wei Liu
2013-07-10 10:46                         ` Jan Beulich
2013-07-10 12:50                           ` Ian Campbell
2013-07-10 12:53                             ` Wei Liu
2013-07-10 12:53                             ` Wei Liu
2013-07-10 13:58                             ` Jan Beulich
2013-07-10 13:58                             ` [Xen-devel] " Jan Beulich
2013-07-10 12:50                           ` Ian Campbell
2013-07-10 10:46                         ` Jan Beulich
2013-07-10 13:19                       ` [Xen-devel] " Eric Dumazet
2013-07-10 13:19                       ` Eric Dumazet
2013-07-08 15:48               ` Wei Liu
2013-07-12  8:32               ` [Xen-devel] " Wei Liu
2013-07-12  8:56                 ` Jan Beulich
2013-07-13 11:26                   ` Dion Kant
2013-07-13 11:26                   ` [Xen-devel] " Dion Kant
2013-07-13 20:17                     ` Dion Kant
2013-07-15  6:37                       ` Jan Beulich
2013-07-12  8:56                 ` Jan Beulich
2013-07-12  8:32               ` Wei Liu
2013-07-08 14:20             ` Jan Beulich
2013-07-08  9:59           ` Jan Beulich
2013-07-05  9:32       ` Jan Beulich
2013-07-05  9:36       ` kernel 3.9.2 - xen 4.2.2/4.3rc1 => BUG unable to handle kernel paging request netif_poll+0x49c/0xe8 Jan Beulich
2013-07-05 10:40       ` [Xen-users] " Dion Kant
2013-07-05 10:54         ` Wei Liu
2013-07-05 19:11           ` Dion Kant
2013-07-05 10:56         ` Jan Beulich
2013-07-05 19:46           ` Dion Kant
2013-07-06 13:36             ` Wei Liu
2013-07-08  8:25             ` Jan Beulich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51DAAD92.4010708@hunenet.nl \
    --to=g.w.kant@hunenet.nl \
    --cc=JBeulich@suse.com \
    --cc=davem@davemloft.net \
    --cc=ian.campbell@citrix.com \
    --cc=netdev@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.