From: Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
To: Bruce Richardson
<bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [PATCH 4/5] mbuf: add userdata pointer field
Date: Wed, 17 Sep 2014 11:35:10 -0400 [thread overview]
Message-ID: <20140917153510.GG4213@localhost.localdomain> (raw)
In-Reply-To: <1410948102-12740-5-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
On Wed, Sep 17, 2014 at 11:01:41AM +0100, Bruce Richardson wrote:
> While some applications may store metadata about packets in the packet
> mbuf headroom, this is not a workable solution for packet metadata which
> is either:
> * larger than the headroom (or headroom is needed for adding pkt headers)
> * needs to be shared or copied among packets
>
> To support these use cases in applications, we reserve a general
> "userdata" pointer field inside the second cache-line of the mbuf. This
> is better than having the application store the pointer to the external
> metadata in the packet headroom, as it saves an additional cache-line
> from being used.
>
> Apart from storing metadata, this field also provides a general 8-byte
> scratch space inside the mbuf for any other application uses that are
> applicable.
>
> Signed-off-by: Bruce Richardson <bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
> ---
> lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h | 3 ++-
> lib/librte_mbuf/rte_mbuf.h | 3 +++
> 2 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
> index 25ed672..d27e891 100644
> --- a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
> +++ b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
> @@ -117,7 +117,8 @@ struct rte_kni_mbuf {
> uint16_t data_len; /**< Amount of data in segment buffer. */
> uint32_t pkt_len; /**< Total pkt len: sum of all segment data_len. */
> char pad3[8];
> - void *pool __attribute__((__aligned__(64)));
> + void *pad4 __attribute__((__aligned__(64)));
> + void *pool;
I don't see a comment about this in the changelog, only about the userdata
pointer being added below.
> void *next;
> };
>
> diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
> index 8e27d2e..b1acfc3 100644
> --- a/lib/librte_mbuf/rte_mbuf.h
> +++ b/lib/librte_mbuf/rte_mbuf.h
> @@ -172,6 +172,9 @@ struct rte_mbuf {
>
> /* second cache line - fields only used in slow path or on TX */
> MARKER cacheline1 __rte_cache_aligned;
> +
> + void *userdata; /**< Can be used for external metadata */
> +
Do you want to make this a void* or a char[8]? I ask because if people are
going to use is as a scratch space (rather than a pointer), they get a suprise
when they build this on 32 bit systems, and their 8 byte scratch space is
reduced to 4 bytes.
Neil
> struct rte_mempool *pool; /**< Pool from which mbuf was allocated. */
> struct rte_mbuf *next; /**< Next segment of scattered packet. */
>
> --
> 1.9.3
>
>
next prev parent reply other threads:[~2014-09-17 15:35 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-17 10:01 [PATCH 0/5] Mbuf Structure Rework, part 3 Bruce Richardson
[not found] ` <1410948102-12740-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-17 10:01 ` [PATCH 1/5] mbuf: ensure next pointer is set to null on free Bruce Richardson
2014-09-17 10:01 ` [PATCH 2/5] ixgbe: add prefetch to improve slow-path tx perf Bruce Richardson
[not found] ` <1410948102-12740-3-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-17 15:21 ` Neil Horman
[not found] ` <20140917152103.GE4213-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-09-17 15:35 ` Richardson, Bruce
[not found] ` <59AF69C657FD0841A61C55336867B5B0343F2EEA-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-17 17:59 ` Neil Horman
[not found] ` <20140917175936.GA13492-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-18 13:36 ` Bruce Richardson
2014-09-18 15:29 ` Neil Horman
[not found] ` <20140918152930.GG20389-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-18 15:42 ` Bruce Richardson
2014-09-18 17:56 ` Neil Horman
2014-09-17 10:01 ` [PATCH 3/5] testpmd: Change rxfreet default to 32 Bruce Richardson
[not found] ` <1410948102-12740-4-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-17 15:29 ` Neil Horman
[not found] ` <20140917152945.GF4213-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-09-18 15:53 ` Richardson, Bruce
[not found] ` <59AF69C657FD0841A61C55336867B5B0343F355F-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-18 17:13 ` Thomas Monjalon
2014-09-18 18:08 ` Neil Horman
[not found] ` <20140918180841.GN20389-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-19 9:18 ` Richardson, Bruce
[not found] ` <59AF69C657FD0841A61C55336867B5B0343F38AD-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-19 10:24 ` Neil Horman
[not found] ` <20140919102435.GC12897-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-19 10:28 ` Richardson, Bruce
[not found] ` <59AF69C657FD0841A61C55336867B5B0343F395C-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-19 15:18 ` Neil Horman
2014-09-18 18:03 ` Neil Horman
2014-09-17 10:01 ` [PATCH 4/5] mbuf: add userdata pointer field Bruce Richardson
[not found] ` <1410948102-12740-5-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-17 15:35 ` Neil Horman [this message]
[not found] ` <20140917153510.GG4213-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-09-17 16:02 ` Richardson, Bruce
[not found] ` <59AF69C657FD0841A61C55336867B5B0343F2F91-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-17 18:29 ` Neil Horman
2014-09-17 10:01 ` [PATCH 5/5] mbuf: Add in second vlan tag field to mbuf Bruce Richardson
[not found] ` <1410948102-12740-6-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-17 20:46 ` Stephen Hemminger
2014-09-23 11:08 ` [PATCH v2 0/5] Mbuf Structure Rework, part 3 Bruce Richardson
[not found] ` <1411470497-10209-1-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-23 11:08 ` [PATCH v2 1/5] mbuf: ensure next pointer is set to null on free Bruce Richardson
2014-09-23 11:08 ` [PATCH v2 2/5] ixgbe: add prefetch to improve slow-path tx perf Bruce Richardson
2014-09-23 11:08 ` [PATCH v2 3/5] testpmd: Change rxfreet default to 32 Bruce Richardson
[not found] ` <1411470497-10209-4-git-send-email-bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-09-23 17:02 ` Neil Horman
[not found] ` <20140923170231.GC12884-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-09-24 9:03 ` Richardson, Bruce
[not found] ` <59AF69C657FD0841A61C55336867B5B03440521B-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-09-24 10:05 ` Neil Horman
2014-11-07 12:30 ` Thomas Monjalon
2014-11-07 13:49 ` Bruce Richardson
2014-09-23 11:08 ` [PATCH v2 4/5] mbuf: add userdata pointer field Bruce Richardson
2014-09-23 11:08 ` [PATCH v2 5/5] mbuf: switch vlan_tci and reserved2 fields Bruce Richardson
2014-09-29 15:58 ` [PATCH v2 0/5] Mbuf Structure Rework, part 3 De Lara Guarch, Pablo
[not found] ` <E115CCD9D858EF4F90C690B0DCB4D89722628408-kPTMFJFq+rEMvF1YICWikbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-10-08 12:31 ` Thomas Monjalon
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=20140917153510.GG4213@localhost.localdomain \
--to=nhorman-2xusbdqka4r54taoqtywwq@public.gmane.org \
--cc=bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=dev-VfR2kkLFssw@public.gmane.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.