From: "Yang, Zhiyong" <zhiyong.yang@intel.com>
To: "thomas.monjalon@6wind.com" <thomas.monjalon@6wind.com>,
"Richardson, Bruce" <bruce.richardson@intel.com>,
"Ananyev, Konstantin" <konstantin.ananyev@intel.com>
Cc: "yuanhan.liu@linux.intel.com" <yuanhan.liu@linux.intel.com>,
"De Lara Guarch, Pablo" <pablo.de.lara.guarch@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v2 0/4] eal/common: introduce rte_memset and related test
Date: Mon, 9 Jan 2017 09:48:41 +0000 [thread overview]
Message-ID: <E182254E98A5DA4EB1E657AC7CB9BD2A3EB699B4@BGSMSX101.gar.corp.intel.com> (raw)
In-Reply-To: <1482833098-38096-1-git-send-email-zhiyong.yang@intel.com>
Hi, Thomas, Bruce, Konstantin:
Any comments about the patchset? Do I need to modify anything?
Thanks
Zhiyong
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Zhiyong Yang
> Sent: Tuesday, December 27, 2016 6:05 PM
> To: dev@dpdk.org
> Cc: yuanhan.liu@linux.intel.com; thomas.monjalon@6wind.com; Richardson,
> Bruce <bruce.richardson@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; De Lara Guarch, Pablo
> <pablo.de.lara.guarch@intel.com>
> Subject: [dpdk-dev] [PATCH v2 0/4] eal/common: introduce rte_memset and
> related test
>
> DPDK code has met performance drop badly in some case when calling glibc
> function memset. Reference to discussions about memset in
> http://dpdk.org/ml/archives/dev/2016-October/048628.html
> It is necessary to introduce more high efficient function to fix it.
> One important thing about rte_memset is that we can get clear control on
> what instruction flow is used.
>
> This patchset introduces rte_memset to bring more high efficient
> implementation, and will bring obvious perf improvement, especially for
> small N bytes in the most application scenarios.
>
> Patch 1 implements rte_memset in the file rte_memset.h on IA platform The
> file supports three types of instruction sets including sse & avx (128bits),
> avx2(256bits) and avx512(512bits). rte_memset makes use of vectorization
> and inline function to improve the perf on IA. In addition, cache line and
> memory alignment are fully taken into consideration.
>
> Patch 2 implements functional autotest to validates the function whether to
> work in a right way.
>
> Patch 3 implements performance autotest separately in cache and memory.
> We can see the perf of rte_memset is obviously better than glibc memset
> especially for small N bytes.
>
> Patch 4 Using rte_memset instead of copy_virtio_net_hdr can bring 3%~4%
> performance improvements on IA platform from virtio/vhost non-mergeable
> loopback testing.
>
> Changes in V2:
>
> Patch 1:
> Rename rte_memset.h -> rte_memset_64.h and create a file rte_memset.h
> for each arch.
>
> Patch 3:
> add the perf comparation data between rte_memset and memset on
> haswell.
>
> Patch 4:
> Modify release_17_02.rst description.
>
> Zhiyong Yang (4):
> eal/common: introduce rte_memset on IA platform
> app/test: add functional autotest for rte_memset
> app/test: add performance autotest for rte_memset
> lib/librte_vhost: improve vhost perf using rte_memset
>
> app/test/Makefile | 3 +
> app/test/test_memset.c | 158 +++++++++
> app/test/test_memset_perf.c | 348 +++++++++++++++++++
> doc/guides/rel_notes/release_17_02.rst | 7 +
> .../common/include/arch/arm/rte_memset.h | 36 ++
> .../common/include/arch/ppc_64/rte_memset.h | 36 ++
> .../common/include/arch/tile/rte_memset.h | 36 ++
> .../common/include/arch/x86/rte_memset.h | 51 +++
> .../common/include/arch/x86/rte_memset_64.h | 378
> +++++++++++++++++++++
> lib/librte_eal/common/include/generic/rte_memset.h | 52 +++
> lib/librte_vhost/virtio_net.c | 18 +-
> 11 files changed, 1116 insertions(+), 7 deletions(-) create mode 100644
> app/test/test_memset.c create mode 100644 app/test/test_memset_perf.c
> create mode 100644
> lib/librte_eal/common/include/arch/arm/rte_memset.h
> create mode 100644
> lib/librte_eal/common/include/arch/ppc_64/rte_memset.h
> create mode 100644 lib/librte_eal/common/include/arch/tile/rte_memset.h
> create mode 100644
> lib/librte_eal/common/include/arch/x86/rte_memset.h
> create mode 100644
> lib/librte_eal/common/include/arch/x86/rte_memset_64.h
> create mode 100644 lib/librte_eal/common/include/generic/rte_memset.h
>
> --
> 2.7.4
next prev parent reply other threads:[~2017-01-09 9:48 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-05 8:26 [dpdk-dev] [PATCH " Zhiyong Yang
2016-12-02 10:00 ` Maxime Coquelin
2016-12-06 6:33 ` Yang, Zhiyong
2016-12-06 8:29 ` Maxime Coquelin
2016-12-07 9:28 ` Yang, Zhiyong
2016-12-07 9:37 ` Yuanhan Liu
2016-12-07 9:43 ` Yang, Zhiyong
2016-12-07 9:48 ` Yuanhan Liu
2016-12-05 8:26 ` [dpdk-dev] [PATCH 1/4] eal/common: introduce rte_memset on IA platform Zhiyong Yang
2016-12-02 10:25 ` Thomas Monjalon
2016-12-08 7:41 ` Yang, Zhiyong
2016-12-08 9:26 ` Ananyev, Konstantin
2016-12-08 9:53 ` Yang, Zhiyong
2016-12-08 10:27 ` Bruce Richardson
2016-12-08 10:30 ` Ananyev, Konstantin
2016-12-11 12:32 ` Yang, Zhiyong
2016-12-15 6:51 ` Yang, Zhiyong
2016-12-15 10:12 ` Bruce Richardson
2016-12-16 10:19 ` Yang, Zhiyong
2016-12-19 6:27 ` Yuanhan Liu
2016-12-20 2:41 ` Yao, Lei A
2016-12-15 10:53 ` Ananyev, Konstantin
2016-12-16 2:15 ` Yang, Zhiyong
2016-12-16 11:47 ` Ananyev, Konstantin
2016-12-20 9:31 ` Yang, Zhiyong
2016-12-08 15:09 ` Thomas Monjalon
2016-12-11 12:04 ` Yang, Zhiyong
2016-12-27 10:04 ` [dpdk-dev] [PATCH v2 0/4] eal/common: introduce rte_memset and related test Zhiyong Yang
2016-12-27 10:04 ` [dpdk-dev] [PATCH v2 1/4] eal/common: introduce rte_memset on IA platform Zhiyong Yang
2016-12-27 10:04 ` [dpdk-dev] [PATCH v2 2/4] app/test: add functional autotest for rte_memset Zhiyong Yang
2016-12-27 10:04 ` [dpdk-dev] [PATCH v2 3/4] app/test: add performance " Zhiyong Yang
2016-12-27 10:04 ` [dpdk-dev] [PATCH v2 4/4] lib/librte_vhost: improve vhost perf using rte_memset Zhiyong Yang
2017-01-09 9:48 ` Yang, Zhiyong [this message]
2017-01-17 6:24 ` [dpdk-dev] [PATCH v2 0/4] eal/common: introduce rte_memset and related test Yang, Zhiyong
2017-01-17 20:14 ` Thomas Monjalon
2017-01-18 0:15 ` Vincent JARDIN
2017-01-18 2:42 ` Yang, Zhiyong
2017-01-18 7:42 ` Thomas Monjalon
2017-01-19 1:36 ` Yang, Zhiyong
2016-12-05 8:26 ` [dpdk-dev] [PATCH 2/4] app/test: add functional autotest for rte_memset Zhiyong Yang
2016-12-05 8:26 ` [dpdk-dev] [PATCH 3/4] app/test: add performance " Zhiyong Yang
2016-12-05 8:26 ` [dpdk-dev] [PATCH 4/4] lib/librte_vhost: improve vhost perf using rte_memset Zhiyong Yang
2016-12-02 9:46 ` Thomas Monjalon
2016-12-06 8:04 ` Yang, Zhiyong
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=E182254E98A5DA4EB1E657AC7CB9BD2A3EB699B4@BGSMSX101.gar.corp.intel.com \
--to=zhiyong.yang@intel.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=konstantin.ananyev@intel.com \
--cc=pablo.de.lara.guarch@intel.com \
--cc=thomas.monjalon@6wind.com \
--cc=yuanhan.liu@linux.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;
as well as URLs for NNTP newsgroup(s).