[dpdk-dev] [Qemu-devel] [PATCH 1/2] vhost: enable any layout feature
Yuanhan Liu
yuanhan.liu at linux.intel.com
Mon Oct 10 05:59:10 CEST 2016
On Mon, Oct 10, 2016 at 06:46:44AM +0300, Michael S. Tsirkin wrote:
> On Mon, Oct 10, 2016 at 11:37:44AM +0800, Yuanhan Liu wrote:
> > On Thu, Sep 29, 2016 at 11:21:48PM +0300, Michael S. Tsirkin wrote:
> > > On Thu, Sep 29, 2016 at 10:05:22PM +0200, Maxime Coquelin wrote:
> > > >
> > > >
> > > > On 09/29/2016 07:57 PM, Michael S. Tsirkin wrote:
> > > Yes but two points.
> > >
> > > 1. why is this memset expensive?
> >
> > I don't have the exact answer, but just some rough thoughts:
> >
> > It's an external clib function: there is a call stack and the
> > IP register will bounch back and forth.
>
> for memset 0? gcc 5.3.1 on fedora happily inlines it.
Good to know!
> > overkill to use that for resetting 14 bytes structure.
> >
> > Some trick like
> > *(struct virtio_net_hdr *)hdr = {0, };
> >
> > Or even
> > hdr->xxx = 0;
> > hdr->yyy = 0;
> >
> > should behaviour better.
> >
> > There was an example: the vhost enqueue optmization patchset from
> > Zhihong [0] uses memset, and it introduces more than 15% drop (IIRC)
> > on my Ivybridge server: it has no such issue on his server though.
> >
> > [0]: http://dpdk.org/ml/archives/dev/2016-August/045272.html
> >
> > --yliu
>
> I'd say that's weird. what's your config? any chance you
> are using an old compiler?
Not really, it's gcc 5.3.1. Maybe Zhihong could explain more. IIRC,
he said the memset is not well optimized for Ivybridge server.
--yliu
More information about the dev
mailing list