public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: xiaohui.xin@intel.com
Cc: netdev@vger.kernel.org, kvm@vger.kernel.org,
	linux-kernel@vger.kernel.org, mst@redhat.com, mingo@elte.hu,
	davem@davemloft.net, herbert@gondor.apana.org.au,
	jdike@linux.intel.com
Subject: Re: Re:[PATCH v14 06/17] Use callback to deal with skb_release_data() specially.
Date: Mon, 08 Nov 2010 09:24:46 +0100	[thread overview]
Message-ID: <1289204686.2478.375.camel@edumazet-laptop> (raw)
In-Reply-To: <1289203430-5935-1-git-send-email-xiaohui.xin@intel.com>

Le lundi 08 novembre 2010 à 16:03 +0800, xiaohui.xin@intel.com a écrit :
> From: Xin Xiaohui <xiaohui.xin@intel.com>
> 
> >> Hmm, I suggest you read the comment two lines above.
> >>
> >> If destructor_arg is now cleared each time we allocate a new skb, then,
> >> please move it before dataref in shinfo structure, so that the following
> >> memset() does the job efficiently...
> >
> >
> >Something like :
> >
> >diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
> >index e6ba898..2dca504 100644
> >--- a/include/linux/skbuff.h
> >+++ b/include/linux/skbuff.h
> >@@ -195,6 +195,9 @@ struct skb_shared_info {
> > 	__be32          ip6_frag_id;
> > 	__u8		tx_flags;
> > 	struct sk_buff	*frag_list;
> >+	/* Intermediate layers must ensure that destructor_arg
> >+	 * remains valid until skb destructor */
> >+	void		*destructor_arg;
> > 	struct skb_shared_hwtstamps hwtstamps;
> >
> > 	/*
> >@@ -202,9 +205,6 @@ struct skb_shared_info {
> > 	 */
> > 	atomic_t	dataref;
> >
> >-	/* Intermediate layers must ensure that destructor_arg
> >-	 * remains valid until skb destructor */
> >-	void *		destructor_arg;
> > 	/* must be last field, see pskb_expand_head() */
> > 	skb_frag_t	frags[MAX_SKB_FRAGS];
> > };
> >
> >
> 
> Will that affect the cache line?

What do you mean ?

> Or, we can move the line to clear destructor_arg to the end of __alloc_skb().
> It looks like as the following, which one do you prefer?
> 
> Thanks
> Xiaohui
> 
> ---
>  net/core/skbuff.c |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)
> 
> diff --git a/net/core/skbuff.c b/net/core/skbuff.c
> index c83b421..df852f2 100644
> --- a/net/core/skbuff.c
> +++ b/net/core/skbuff.c
> @@ -224,6 +224,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
>  
>  		child->fclone = SKB_FCLONE_UNAVAILABLE;
>  	}
> +	shinfo->destructor_arg = NULL;
>  out:
>  	return skb;
>  nodata:

I dont understand why you want to do this.

This adds an instruction, makes code bigger, and no obvious gain for me,
at memory transactions side.

If integrated in the existing memset(), cost is an extra iteration to
perform the clear of this field.



  reply	other threads:[~2010-11-08  8:24 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-04  9:04 [PATCH v14 00/17] Provide a zero-copy method on KVM virtio-net xiaohui.xin
2010-11-04  9:04 ` [PATCH v14 01/17] Add a new structure for skb buffer from external xiaohui.xin
2010-11-04  9:04   ` [PATCH v14 02/17] Add a new struct for device to manipulate external buffer xiaohui.xin
2010-11-04  9:04   ` [PATCH v14 03/17] Add a ndo_mp_port_prep pointer to net_device_ops xiaohui.xin
2010-11-04  9:05   ` [PATCH v14 04/17] Add a function make external buffer owner to query capability xiaohui.xin
2010-11-04  9:05   ` [PATCH v14 05/17] Add a function to indicate if device use external buffer xiaohui.xin
2010-11-04  9:05   ` [PATCH v14 06/17] Use callback to deal with skb_release_data() specially xiaohui.xin
2010-11-04  9:04     ` Eric Dumazet
2010-11-04  9:07       ` Eric Dumazet
2010-11-08  8:03         ` xiaohui.xin
2010-11-08  8:24           ` Eric Dumazet [this message]
2010-11-08  8:39             ` Xin, Xiaohui
2010-11-04  9:05   ` [PATCH v14 07/17]Modify netdev_alloc_page() to get external buffer xiaohui.xin
2010-11-04  9:05   ` [PATCH v14 08/17] Modify netdev_free_page() to release " xiaohui.xin
2010-11-04  9:05   ` [PATCH v14 09/17] Don't do skb recycle, if device use " xiaohui.xin
2010-11-04  9:05   ` [PATCH v14 10/17] If device is in zero-copy mode first, bonding will fail xiaohui.xin
2010-11-04  9:05   ` [PATCH v14 11/17] Add a hook to intercept external buffers from NIC driver xiaohui.xin
2010-11-04  9:05   ` [PATCH v14 12/17] Add header file for mp device xiaohui.xin
2010-11-04  9:05   ` [PATCH v14 13/17] Add mp(mediate passthru) device xiaohui.xin
2010-11-04  9:05   ` [PATCH v14 14/17] Add a kconfig entry and make entry for mp device xiaohui.xin
2010-11-04  9:05   ` [PATCH v14 15/17]Provides multiple submits and asynchronous notifications xiaohui.xin
2010-11-04  9:05   ` [PATCH v14 16/17] An example how to modifiy NIC driver to use napi_gro_frags() interface xiaohui.xin
2010-11-04  9:05   ` [PATCH v14 17/17] An example how to alloc user buffer based on " xiaohui.xin

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=1289204686.2478.375.camel@edumazet-laptop \
    --to=eric.dumazet@gmail.com \
    --cc=davem@davemloft.net \
    --cc=herbert@gondor.apana.org.au \
    --cc=jdike@linux.intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=xiaohui.xin@intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox