From: Bruce Richardson <bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
Cc: dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [PATCH 0/2] dpdk: Allow for dynamic enablement of some isolated features
Date: Thu, 31 Jul 2014 13:19:50 -0700 [thread overview]
Message-ID: <20140731201949.GA28495@localhost.localdomain> (raw)
In-Reply-To: <20140731190117.GD20718-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
On Thu, Jul 31, 2014 at 03:01:17PM -0400, Neil Horman wrote:
> On Thu, Jul 31, 2014 at 11:36:32AM -0700, Bruce Richardson wrote:
> >
> > I think a good first step here that I can't see anyone objecting to is
> > to enable the ixgbe driver to use the vector code path for a generic
> > x86_64 build. I've run a quick test here, and changing "_mm_popcnt_u64"
> > to "__builtin_popcountll" [and the include from nmmintrin to tmmintrin]
> > allows a compile for machine type default, and testpmd can still forward
> > packets at a good rate (roughly perf down about 10% vs native compile on
> > SNB).
> > The ACL is a tougher nut to crack, but anyone see any issues with that
> > two-line change to ixgbe_rxtx_vec.c? [Neil, since you started the patch
> > set thread, do you want to submit an official patch here, or would you prefer I
> > do so?]
> >
>
> I'm happy to do so, Though 10% performance degradation vs. using the sse4.2
> instructions in that path seems significant, isn't it? Given that performance
> delta, it seems like it would still be preferable to have a path that used the
> sse4.2 instructions when they're available. Or am I misreading what you mean
> when you say down 10%
>
> Neil
>
Ok, I did a little bit more testing here. Using the vector pmd compiled
for generic x86_64 and using __builtin_popcountll is approx 35% faster
for packet IO than the existing fast-path functions. It is also 7% (a
bit lower than ~10% as I originally stated) slower than the existing
native-compiled vpmd on a Sandy Bridge platform.
I then ran an extra test, using EXTRA_CFLAGS='-msse4.2' to turn on the
extra instructions. The ~7% performance drop went to ~3%, so we would
gain a little more with using SSE4.2, but compared to the gain from
having the vector driver at all, it's not that much. [I don't have a
system handy with AVX2 support to see what boosts might come from
compiling with that instruction set enabled.]
Because of this, I'd take the ~35% speed boost for now, and try and find
what would be the best general way to solve this problem across all
libraries. Also, I think that anyone who needs that extra 4% performance
probably wants the other 3% too, and so will compile up the code from
source using the "native" compilation target. :-)
/Bruce
next prev parent reply other threads:[~2014-07-31 20:19 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-29 20:24 [PATCH 0/2] dpdk: Allow for dynamic enablement of some isolated features Neil Horman
[not found] ` <1406665466-29654-1-git-send-email-nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
2014-07-29 20:24 ` [PATCH 1/2] ixgbe: test sse4.2 support at runtime for vectorized receive operations Neil Horman
2014-07-29 20:24 ` [PATCH 2/2] acl: Preform dynamic sse4.2 support check Neil Horman
2014-07-30 12:07 ` [PATCH 0/2] dpdk: Allow for dynamic enablement of some isolated features Ananyev, Konstantin
[not found] ` <2601191342CEEE43887BDE71AB97725821345777-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-07-30 13:01 ` Neil Horman
[not found] ` <20140730130109.GA19737-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-07-30 13:44 ` Ananyev, Konstantin
2014-07-30 14:49 ` [PATCH v2 " Neil Horman
[not found] ` <1406731769-18523-1-git-send-email-nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
2014-07-30 14:49 ` [PATCH v2 1/2] ixgbe: test sse4.2 support at runtime for vectorized receive operations Neil Horman
2014-07-30 14:49 ` [PATCH v2 2/2] acl: Preform dynamic sse4.2 support check Neil Horman
2014-07-30 15:36 ` [PATCH v2 0/2] dpdk: Allow for dynamic enablement of some isolated features Ananyev, Konstantin
2014-07-30 19:03 ` Venky Venkatesan
[not found] ` <53D9418A.5020308-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-07-30 19:17 ` Neil Horman
2014-07-30 19:34 ` Neil Horman
2014-07-30 18:59 ` [PATCH " Bruce Richardson
[not found] ` <20140730185902.GA6420-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-07-30 19:28 ` Neil Horman
[not found] ` <20140730192844.GB3296-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-07-30 21:09 ` Bruce Richardson
[not found] ` <20140730210920.GB6420-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-07-31 9:30 ` Thomas Monjalon
2014-07-31 11:36 ` Ananyev, Konstantin
2014-07-31 13:13 ` Neil Horman
[not found] ` <20140731131351.GA20718-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-07-31 13:26 ` Thomas Monjalon
2014-07-31 14:32 ` Neil Horman
[not found] ` <20140731143228.GB20718-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-07-31 18:10 ` Neil Horman
[not found] ` <20140731181032.GC20718-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-07-31 18:36 ` Bruce Richardson
[not found] ` <20140731183631.GC6420-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-07-31 19:01 ` Neil Horman
[not found] ` <20140731190117.GD20718-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-07-31 20:19 ` Bruce Richardson [this message]
[not found] ` <20140731201949.GA28495-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-08-01 13:36 ` Neil Horman
[not found] ` <20140801133655.GA31979-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-08-01 13:56 ` Ananyev, Konstantin
[not found] ` <2601191342CEEE43887BDE71AB9772582134F31F-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-08-01 14:26 ` Venkatesan, Venky
2014-08-01 14:27 ` Neil Horman
2014-07-31 19:58 ` John W. Linville
[not found] ` <20140731195829.GG17560-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
2014-07-31 20:20 ` Bruce Richardson
[not found] ` <20140731202042.GB28495-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-07-31 20:32 ` John W. Linville
[not found] ` <20140731203200.GH17560-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
2014-08-01 8:46 ` Vincent JARDIN
[not found] ` <53DB53E9.6040004-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-08-01 14:06 ` Neil Horman
[not found] ` <20140801140654.GB31979-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-08-01 14:57 ` Vincent JARDIN
[not found] ` <53DBAAF4.4030608-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-08-01 15:19 ` Neil Horman
2014-07-31 20:10 ` Neil Horman
[not found] ` <20140731201018.GE20718-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-07-31 20:25 ` Bruce Richardson
[not found] ` <20140731202506.GC28495-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-08-01 15:06 ` Neil Horman
[not found] ` <20140801150629.GD31979-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-08-01 19:22 ` Bruce Richardson
[not found] ` <20140801192221.GE28495-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-08-01 20:43 ` Neil Horman
[not found] ` <20140801204352.GF31979-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-08-01 21:08 ` Bruce Richardson
[not found] ` <20140801210821.GF28495-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-08-02 12:56 ` Neil Horman
2014-07-31 21:53 ` Thomas Monjalon
2014-07-31 21:25 ` 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=20140731201949.GA28495@localhost.localdomain \
--to=bruce.richardson-ral2jqcrhueavxtiumwx3w@public.gmane.org \
--cc=dev-VfR2kkLFssw@public.gmane.org \
--cc=nhorman-2XuSBdqkA4R54TAoqtyWWQ@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.