All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jianbo Liu <jianbo.liu@linaro.org>
To: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Cc: dev@dpdk.org, Bruce Richardson <bruce.richardson@intel.com>,
	"Zhang, Helin" <helin.zhang@intel.com>,
	"Ananyev, Konstantin" <konstantin.ananyev@intel.com>
Subject: Re: [PATCH v3 2/4] ixgbe: implement vector PMD for arm architecture
Date: Thu, 26 May 2016 09:37:10 +0800	[thread overview]
Message-ID: <CAP4Qi3-kAR8yJ0uV5hrrxBA1gMeVZjH+7ngUcbW68dvJXKm7GQ@mail.gmail.com> (raw)
In-Reply-To: <20160525122935.GA30670@localhost.localdomain>

On 25 May 2016 at 20:29, Jerin Jacob <jerin.jacob@caviumnetworks.com> wrote:
> On Fri, May 06, 2016 at 11:55:46AM +0530, Jianbo Liu wrote:
>> use ARM NEON intrinsic to implement ixgbe vPMD
>>
>> Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>
>> ---
>>  drivers/net/ixgbe/Makefile              |   4 +
>>  drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c | 561 ++++++++++++++++++++++++++++++++
>>  2 files changed, 565 insertions(+)
>>  create mode 100644 drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c

>> +             /* Read desc statuses backwards to avoid race condition */
>> +             /* A.1 load 4 pkts desc */
>> +             descs[3] =  vld1q_u64((uint64_t *)(rxdp + 3));
>> +             rte_rmb();
>
> Any specific reason to add rte_rmb() here, If there is no performance
> drop then it makes sense to add before descs[3] uses it.i.e
> at rte_compiler_barrier() place in x86 code.
>
To avoid desc statuses inconsistent since they are read backwards.

>> +
>> +             /* B.2 copy 2 mbuf point into rx_pkts  */
>> +             vst1q_u64((uint64_t *)&rx_pkts[pos], mbp1);
>> +
>> +             /* B.1 load 1 mbuf point */
>> +             mbp2 = vld1q_u64((uint64_t *)&sw_ring[pos + 2]);
>> +
>> +             descs[2] =  vld1q_u64((uint64_t *)(rxdp + 2));
>> +             /* B.1 load 2 mbuf point */
>> +             descs[1] =  vld1q_u64((uint64_t *)(rxdp + 1));
>> +             descs[0] =  vld1q_u64((uint64_t *)(rxdp));
>> +
>> +             /* B.2 copy 2 mbuf point into rx_pkts  */
>> +             vst1q_u64((uint64_t *)&rx_pkts[pos + 2], mbp2);
>> +
>> +             if (split_packet) {
>> +                     rte_prefetch_non_temporal(&rx_pkts[pos]->cacheline1);
>> +                     rte_prefetch_non_temporal(&rx_pkts[pos+1]->cacheline1);
>> +                     rte_prefetch_non_temporal(&rx_pkts[pos+2]->cacheline1);
>> +                     rte_prefetch_non_temporal(&rx_pkts[pos+3]->cacheline1);
>
> replace with rte_mbuf_prefetch_part2 or equivalent
>
rte_mbuf_prefetch_part2 is new functions after this patchset, so it's
better to submit a new patch as Bruce said.

  parent reply	other threads:[~2016-05-26  1:37 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-20 13:44 [PATCH 1/4] ixgbe: rearrange vector PMD code for x86 Jianbo Liu
2016-04-20 13:45 ` [PATCH 2/4] ixgbe: implement vector PMD for arm architecture Jianbo Liu
2016-04-20 13:45 ` [PATCH 3/4] ixgbe: enable ixgbe vector PMD on ARMv8a platform Jianbo Liu
2016-04-20 13:45 ` [PATCH 4/4] maintainers: claim responsibility for ixgbe vector PMD on ARM Jianbo Liu
2016-04-25 16:35 ` [PATCH 1/4] ixgbe: rearrange vector PMD code for x86 Bruce Richardson
2016-04-26  8:23   ` Jianbo Liu
2016-04-26 13:50 ` [PATCH v2 " Jianbo Liu
2016-05-03  5:51   ` Jianbo Liu
2016-05-03 16:29   ` Bruce Richardson
2016-04-26 13:55 ` [PATCH v2 2/4] ixgbe: implement vector PMD for arm architecture Jianbo Liu
2016-04-26 13:55 ` [PATCH v2 3/4] ixgbe: enable ixgbe vector PMD on ARMv8a platform Jianbo Liu
2016-04-26 13:55 ` [PATCH v2 4/4] maintainers: claim responsibility for ixgbe vector PMD on ARM Jianbo Liu
2016-05-06  6:25 ` [PATCH v3 0/4] ixgbe: enable " Jianbo Liu
2016-05-06  6:25   ` [PATCH v3 1/4] ixgbe: rearrange vector PMD code for x86 Jianbo Liu
2016-05-06  6:25   ` [PATCH v3 2/4] ixgbe: implement vector PMD for arm architecture Jianbo Liu
2016-05-10 14:49     ` Bruce Richardson
2016-05-11  2:40       ` Jianbo Liu
2016-05-25 12:29     ` Jerin Jacob
2016-05-25 12:53       ` Bruce Richardson
2016-05-26  1:37       ` Jianbo Liu [this message]
2016-05-06  6:25   ` [PATCH v3 3/4] ixgbe: enable ixgbe vector PMD on ARMv8a platform Jianbo Liu
2016-05-06  6:25   ` [PATCH v3 4/4] maintainers: claim responsibility for ixgbe vector PMD on ARM Jianbo Liu
2016-05-24 16:10   ` [PATCH v3 0/4] ixgbe: enable " Bruce Richardson
2016-05-24 16:12     ` Bruce Richardson
2016-05-27 10:44       ` Jianbo Liu

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=CAP4Qi3-kAR8yJ0uV5hrrxBA1gMeVZjH+7ngUcbW68dvJXKm7GQ@mail.gmail.com \
    --to=jianbo.liu@linaro.org \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=helin.zhang@intel.com \
    --cc=jerin.jacob@caviumnetworks.com \
    --cc=konstantin.ananyev@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.