From: "Liang, Cunming" <cunming.liang@intel.com>
To: "Chen Jing D(Mark)" <jing.d.chen@intel.com>, dev@dpdk.org
Subject: Re: [PATCH v2 06/16] fm10k: add Vector RX function
Date: Tue, 27 Oct 2015 13:24:58 +0800 [thread overview]
Message-ID: <562F0AAA.6060008@intel.com> (raw)
In-Reply-To: <1445507104-22563-7-git-send-email-jing.d.chen@intel.com>
Hi,
On 10/22/2015 5:44 PM, Chen Jing D(Mark) wrote:
> From: "Chen Jing D(Mark)" <jing.d.chen@intel.com>
>
> Add func fm10k_recv_raw_pkts_vec to parse raw packets, in which
> includes possible chained packets.
> Add func fm10k_recv_pkts_vec to receive single mbuf packet.
>
> Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
> ---
> drivers/net/fm10k/fm10k.h | 1 +
> drivers/net/fm10k/fm10k_rxtx_vec.c | 196 ++++++++++++++++++++++++++++++++++++
> 2 files changed, 197 insertions(+), 0 deletions(-)
[...]
> + /* mask to shuffle from desc. to mbuf */
> + shuf_msk = _mm_set_epi8(
> + 7, 6, 5, 4, /* octet 4~7, 32bits rss */
> + 15, 14, /* octet 14~15, low 16 bits vlan_macip */
> + 13, 12, /* octet 12~13, 16 bits data_len */
> + 0xFF, 0xFF, /* skip high 16 bits pkt_len, zero out */
> + 13, 12, /* octet 12~13, low 16 bits pkt_len */
> + 0xFF, 0xFF, /* skip high 16 bits pkt_type */
> + 0xFF, 0xFF /* Skip pkt_type field in shuffle operation */
> + );
> +
> + /* Cache is empty -> need to scan the buffer rings, but first move
> + * the next 'n' mbufs into the cache
> + */
> + mbufp = &rxq->sw_ring[next_dd];
> +
> + /* A. load 4 packet in one loop
> + * [A*. mask out 4 unused dirty field in desc]
> + * B. copy 4 mbuf point from swring to rx_pkts
> + * C. calc the number of DD bits among the 4 packets
> + * [C*. extract the end-of-packet bit, if requested]
> + * D. fill info. from desc to mbuf
> + */
> + for (pos = 0, nb_pkts_recd = 0; pos < nb_pkts;
It's necessary to floor align the nb_pkts into RTE_FM10K_DESCS_PER_LOOP,
otherwise it may exceed the rx_pkts array.
e.g. nb_pkts is 6, it executes twice in the loop which has chance to get
8 packets done, but rx_pkts only expect 6 packets.
>
> + pos += RTE_FM10K_DESCS_PER_LOOP,
> + rxdp += RTE_FM10K_DESCS_PER_LOOP) {
> + __m128i descs0[RTE_FM10K_DESCS_PER_LOOP];
> + __m128i pkt_mb1, pkt_mb2, pkt_mb3, pkt_mb4;
> + __m128i zero, staterr, sterr_tmp1, sterr_tmp2;
> + __m128i mbp1, mbp2; /* two mbuf pointer in one XMM reg. */
> +
>
next prev parent reply other threads:[~2015-10-27 5:25 UTC|newest]
Thread overview: 109+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-29 13:03 [PATCH 00/14] Vector Rx/Tx PMD implementation for fm10k Chen Jing D(Mark)
2015-09-29 13:03 ` [PATCH 01/14] fm10k: add new vPMD file Chen Jing D(Mark)
2015-10-22 9:44 ` [PATCH v2 00/16] Vector Rx/Tx PMD implementation for fm10k Chen Jing D(Mark)
2015-10-22 9:44 ` [PATCH v2 01/16] fm10k: add new vPMD file Chen Jing D(Mark)
2015-10-22 15:58 ` Stephen Hemminger
2015-10-23 8:39 ` Chen, Jing D
2015-10-23 10:01 ` Bruce Richardson
2015-10-27 5:26 ` Chen, Jing D
2015-10-27 9:46 ` [PATCH v3 00/16] Vector Rx/Tx PMD implementation for fm10k Chen Jing D(Mark)
2015-10-27 9:46 ` [PATCH v3 01/16] fm10k: add new vPMD file Chen Jing D(Mark)
2015-10-29 9:15 ` [PATCH v4 00/16] Vector Rx/Tx PMD implementation for fm10k Chen Jing D(Mark)
2015-10-29 9:15 ` [PATCH v4 01/16] fm10k: add new vPMD file Chen Jing D(Mark)
2015-10-30 8:02 ` [PATCH v5 00/14] Vector Rx/Tx PMD implementation for fm10k Chen Jing D(Mark)
2015-10-30 8:02 ` [PATCH v5 01/14] fm10k: add new vPMD file Chen Jing D(Mark)
2015-10-30 8:02 ` [PATCH v5 02/14] fm10k: add vPMD pre-condition check for each RX queue Chen Jing D(Mark)
2015-10-30 8:02 ` [PATCH v5 03/14] fm10k: Add a new func to initialize all parameters Chen Jing D(Mark)
2015-10-30 8:02 ` [PATCH v5 04/14] fm10k: add Vector RX function Chen Jing D(Mark)
2015-10-30 8:02 ` [PATCH v5 05/14] fm10k: add func to do Vector RX condition check Chen Jing D(Mark)
2015-10-30 8:02 ` [PATCH v5 06/14] fm10k: add Vector RX scatter function Chen Jing D(Mark)
2015-10-30 8:03 ` [PATCH v5 07/14] fm10k: add function to decide best RX function Chen Jing D(Mark)
2015-10-30 8:03 ` [PATCH v5 08/14] fm10k: add func to release mbuf in case Vector RX applied Chen Jing D(Mark)
2015-10-30 8:03 ` [PATCH v5 09/14] fm10k: add Vector TX function Chen Jing D(Mark)
2015-10-30 8:03 ` [PATCH v5 10/14] fm10k: use func pointer to reset TX queue and mbuf release Chen Jing D(Mark)
2015-10-30 8:03 ` [PATCH v5 11/14] fm10k: introduce 2 funcs " Chen Jing D(Mark)
2015-10-30 8:03 ` [PATCH v5 12/14] fm10k: Add function to decide best TX func Chen Jing D(Mark)
2015-10-30 8:03 ` [PATCH v5 13/14] fm10k: fix a crash issue in vector RX func Chen Jing D(Mark)
2015-10-30 8:03 ` [PATCH v5 14/14] doc: release notes update for fm10k Vector PMD Chen Jing D(Mark)
2015-11-02 8:36 ` Thomas Monjalon
2015-10-30 8:26 ` [PATCH v5 00/14] Vector Rx/Tx PMD implementation for fm10k Liang, Cunming
2015-11-02 8:38 ` Thomas Monjalon
2015-10-29 9:15 ` [PATCH v4 02/16] fm10k: add vPMD pre-condition check for each RX queue Chen Jing D(Mark)
2015-10-29 9:16 ` [PATCH v4 03/16] fm10k: Add a new func to initialize all parameters Chen Jing D(Mark)
2015-10-29 9:16 ` [PATCH v4 04/16] fm10k: add func to re-allocate mbuf for RX ring Chen Jing D(Mark)
2015-10-29 9:16 ` [PATCH v4 05/16] fm10k: add 2 functions to parse pkt_type and offload flag Chen Jing D(Mark)
2015-10-29 9:16 ` [PATCH v4 06/16] fm10k: add Vector RX function Chen Jing D(Mark)
2015-10-29 9:16 ` [PATCH v4 07/16] fm10k: add func to do Vector RX condition check Chen Jing D(Mark)
2015-10-29 9:16 ` [PATCH v4 08/16] fm10k: add Vector RX scatter function Chen Jing D(Mark)
2015-10-29 9:16 ` [PATCH v4 09/16] fm10k: add function to decide best RX function Chen Jing D(Mark)
2015-10-29 9:16 ` [PATCH v4 10/16] fm10k: add func to release mbuf in case Vector RX applied Chen Jing D(Mark)
2015-10-29 9:16 ` [PATCH v4 11/16] fm10k: add Vector TX function Chen Jing D(Mark)
2015-10-29 9:16 ` [PATCH v4 12/16] fm10k: use func pointer to reset TX queue and mbuf release Chen Jing D(Mark)
2015-10-29 9:16 ` [PATCH v4 13/16] fm10k: introduce 2 funcs " Chen Jing D(Mark)
2015-10-29 9:16 ` [PATCH v4 14/16] fm10k: Add function to decide best TX func Chen Jing D(Mark)
2015-10-29 9:16 ` [PATCH v4 15/16] fm10k: fix a crash issue in vector RX func Chen Jing D(Mark)
2015-10-29 9:16 ` [PATCH v4 16/16] doc: release notes update for fm10k Vector PMD Chen Jing D(Mark)
2015-10-29 10:22 ` [PATCH v4 00/16] Vector Rx/Tx PMD implementation for fm10k Liang, Cunming
2015-10-29 23:12 ` Thomas Monjalon
2015-10-30 3:09 ` Chen, Jing D
2015-10-27 9:46 ` [PATCH v3 02/16] fm10k: add vPMD pre-condition check for each RX queue Chen Jing D(Mark)
2015-10-27 9:46 ` [PATCH v3 03/16] fm10k: Add a new func to initialize all parameters Chen Jing D(Mark)
2015-10-27 9:46 ` [PATCH v3 04/16] fm10k: add func to re-allocate mbuf for RX ring Chen Jing D(Mark)
2015-10-28 13:58 ` Liang, Cunming
2015-10-29 5:24 ` Chen, Jing D
2015-10-29 8:14 ` Liang, Cunming
2015-10-29 8:37 ` Chen, Jing D
2015-10-27 9:46 ` [PATCH v3 05/16] fm10k: add 2 functions to parse pkt_type and offload flag Chen Jing D(Mark)
2015-10-27 9:46 ` [PATCH v3 06/16] fm10k: add Vector RX function Chen Jing D(Mark)
2015-10-27 9:46 ` [PATCH v3 07/16] fm10k: add func to do Vector RX condition check Chen Jing D(Mark)
2015-10-27 9:46 ` [PATCH v3 08/16] fm10k: add Vector RX scatter function Chen Jing D(Mark)
2015-10-28 14:30 ` Liang, Cunming
2015-10-29 5:27 ` Chen, Jing D
2015-10-29 8:06 ` Liang, Cunming
2015-10-27 9:46 ` [PATCH v3 09/16] fm10k: add function to decide best RX function Chen Jing D(Mark)
2015-10-27 9:46 ` [PATCH v3 10/16] fm10k: add func to release mbuf in case Vector RX applied Chen Jing D(Mark)
2015-10-27 9:46 ` [PATCH v3 11/16] fm10k: add Vector TX function Chen Jing D(Mark)
2015-10-27 9:46 ` [PATCH v3 12/16] fm10k: use func pointer to reset TX queue and mbuf release Chen Jing D(Mark)
2015-10-27 9:46 ` [PATCH v3 13/16] fm10k: introduce 2 funcs " Chen Jing D(Mark)
2015-10-27 9:46 ` [PATCH v3 14/16] fm10k: Add function to decide best TX func Chen Jing D(Mark)
2015-10-27 9:46 ` [PATCH v3 15/16] fm10k: fix a crash issue in vector RX func Chen Jing D(Mark)
2015-10-27 9:46 ` [PATCH v3 16/16] doc: release notes update for fm10k Vector PMD Chen Jing D(Mark)
2015-10-22 9:44 ` [PATCH v2 02/16] fm10k: add vPMD pre-condition check for each RX queue Chen Jing D(Mark)
2015-10-22 9:44 ` [PATCH v2 03/16] fm10k: Add a new func to initialize all parameters Chen Jing D(Mark)
2015-10-22 15:57 ` Stephen Hemminger
2015-10-23 8:27 ` Chen, Jing D
2015-10-22 9:44 ` [PATCH v2 04/16] fm10k: add func to re-allocate mbuf for RX ring Chen Jing D(Mark)
2015-10-22 9:44 ` [PATCH v2 05/16] fm10k: add 2 functions to parse pkt_type and offload flag Chen Jing D(Mark)
2015-10-22 9:44 ` [PATCH v2 06/16] fm10k: add Vector RX function Chen Jing D(Mark)
2015-10-27 5:24 ` Liang, Cunming [this message]
2015-10-27 5:32 ` Chen, Jing D
2015-10-22 9:44 ` [PATCH v2 07/16] fm10k: add func to do Vector RX condition check Chen Jing D(Mark)
2015-10-22 9:44 ` [PATCH v2 08/16] fm10k: add Vector RX scatter function Chen Jing D(Mark)
2015-10-27 5:27 ` Liang, Cunming
2015-10-27 5:43 ` Chen, Jing D
2015-10-27 5:55 ` Chen, Jing D
2015-10-22 9:44 ` [PATCH v2 09/16] fm10k: add function to decide best RX function Chen Jing D(Mark)
2015-10-22 9:44 ` [PATCH v2 10/16] fm10k: add func to release mbuf in case Vector RX applied Chen Jing D(Mark)
2015-10-22 9:44 ` [PATCH v2 11/16] fm10k: add Vector TX function Chen Jing D(Mark)
2015-10-22 9:45 ` [PATCH v2 12/16] fm10k: use func pointer to reset TX queue and mbuf release Chen Jing D(Mark)
2015-10-22 9:45 ` [PATCH v2 13/16] fm10k: introduce 2 funcs " Chen Jing D(Mark)
2015-10-22 9:45 ` [PATCH v2 14/16] fm10k: Add function to decide best TX func Chen Jing D(Mark)
2015-10-22 9:45 ` [PATCH v2 15/16] fm10k: fix a crash issue in vector RX func Chen Jing D(Mark)
2015-10-22 9:45 ` [PATCH v2 16/16] doc: release notes update for fm10k Vector PMD Chen Jing D(Mark)
2015-09-29 13:03 ` [PATCH 02/14] fm10k: add vPMD pre-condition check for each RX queue Chen Jing D(Mark)
2015-09-29 13:03 ` [PATCH 03/14] fm10k: Add a new func to initialize all parameters Chen Jing D(Mark)
2015-09-29 13:03 ` [PATCH 04/14] fm10k: add func to re-allocate mbuf for RX ring Chen Jing D(Mark)
2015-09-29 13:03 ` [PATCH 05/14] fm10k: add 2 functions to parse pkt_type and offload flag Chen Jing D(Mark)
2015-09-29 13:03 ` [PATCH 06/14] fm10k: add Vector RX function Chen Jing D(Mark)
2015-09-29 13:14 ` Ananyev, Konstantin
2015-09-29 14:22 ` Bruce Richardson
2015-09-30 13:23 ` Chen, Jing D
2015-09-30 13:18 ` Chen, Jing D
2015-09-29 13:03 ` [PATCH 07/14] fm10k: add func to do Vector RX condition check Chen Jing D(Mark)
2015-09-29 13:03 ` [PATCH 08/14] fm10k: add Vector RX scatter function Chen Jing D(Mark)
2015-09-29 13:03 ` [PATCH 09/14] fm10k: add function to decide best RX function Chen Jing D(Mark)
2015-09-29 13:03 ` [PATCH 10/14] fm10k: add func to release mbuf in case Vector RX applied Chen Jing D(Mark)
2015-09-29 13:03 ` [PATCH 11/14] fm10k: add Vector TX function Chen Jing D(Mark)
2015-09-29 13:03 ` [PATCH 12/14] fm10k: use func pointer to reset TX queue and mbuf release Chen Jing D(Mark)
2015-09-29 13:03 ` [PATCH 13/14] fm10k: introduce 2 funcs " Chen Jing D(Mark)
2015-09-29 13:03 ` [PATCH 14/14] fm10k: Add function to decide best TX func Chen Jing D(Mark)
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=562F0AAA.6060008@intel.com \
--to=cunming.liang@intel.com \
--cc=dev@dpdk.org \
--cc=jing.d.chen@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 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.