DPDK patches and discussions
 help / color / mirror / Atom feed
From: "De Lara Guarch, Pablo" <pablo.de.lara.guarch@intel.com>
To: "bombermag@gmail.com" <bombermag@gmail.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [dpdk-users] Broken hash table functions with CFLAGS -O3
Date: Mon, 18 Jan 2016 14:18:00 +0000	[thread overview]
Message-ID: <E115CCD9D858EF4F90C690B0DCB4D8973C887477@IRSMSX108.ger.corp.intel.com> (raw)
In-Reply-To: <1453124862-35513-1-git-send-email-pablo.de.lara.guarch@intel.com>

Wrong list, sorry

> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Monday, January 18, 2016 1:48 PM
> To: bombermag@gmail.com
> Cc: dev@dpdk.org; De Lara Guarch, Pablo
> Subject: RE: [dpdk-users] Broken hash table functions with CFLAGS -O3
> 
> > -----Original Message-----
> > From: users [mailto:users-bounces@dpdk.org] On Behalf Of Dmitriy
> Yakovlev
> > Sent: Friday, January 15, 2016 1:20 AM
> > To: users@dpdk.org
> > Subject: [dpdk-users] Broken hash table functions with CFLAGS -O3
> >
> > Hello.
> > I trying to use hash tables for adding struct ip:port as key.
> > When trying to add duplicated key it's successfuly added second time, not
> > always, but sometimes.
> > Please see this youtube video, where I'm demonstrating this bug:
> > https://www.youtube.com/watch?v=vsXVxISpmnU
> > Code on github: https://github.com/BombermaG/bug-app
> >
> > When using CFLAGS -O2 this problem cannot be repeated.
> > It's problem with -O3 flag and I must use O2 or how can I solve it?
> > Thank you for helping.
> > (Sorry if this message double posting).
> >
> > Spec info. Tell me, if you need more info.
> > dpdk 2.2.0
> 
> Hello Dmitriy,
> 
> Thanks for the detailed report. I am able to reproduce the issue with
> gcc 4.7 and 4.8. The problem is that the signature sometimes changes,
> due to a different key and therefore the bucket where it should be stored
> is the wrong one.
> 
> Actually, the hash table is fine. The issue is that your key is a structure
> of a 4-byte and 2-byte integers, so your key size should be 6, but instead,
> it is 8, because sizeof(struct...) includes padding to have it multiple of 4.
> Most times, that padding is 0, so it is fine, but when that padding is not 0,
> the key is different and then it looks like you are adding a duplicate
> (but actually you are adding a different key!).
> So, either add padding manually in the key or manually set the key size to 6.
> 
> Regards,
> Pablo
> >
> > Linux 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64
> > x86_64 x86_64 GNU/Linux
> >
> > gcc -v
> > Using built-in specs.
> > COLLECT_GCC=gcc
> > COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-
> wrapper
> > Target: x86_64-redhat-linux
> > Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --
> > infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla
> > --enable-bootstrap --enable-shared --enable-threads=posix --enable-
> > checking=release --with-system-zlib --enable-__cxa_atexit --disable-
> > libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id -
> > -with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-
> > c++,java,fortran,ada,go,lto
> > --enable-plugin --enable-initfini-array --disable-libgcj --with-
> > isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-
> > install
> > --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-
> > linux/cloog-install
> > --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 -
> > -build=x86_64-redhat-linux Thread model: posix gcc version 4.8.5 20150623
> > (Red Hat 4.8.5-4) (GCC)
> >
> > Intel(R) Xeon(R) CPU E5-2643 v2 @ 3.50GHz

      reply	other threads:[~2016-01-18 14:19 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CALq5hH1wwF+KyTgqNfYNM-Tpj6CuxffUfMBcHZS0B7Md4E4Lew@mail.gmail.com>
2016-01-18 13:47 ` Pablo de Lara
2016-01-18 14:18   ` De Lara Guarch, Pablo [this message]

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=E115CCD9D858EF4F90C690B0DCB4D8973C887477@IRSMSX108.ger.corp.intel.com \
    --to=pablo.de.lara.guarch@intel.com \
    --cc=bombermag@gmail.com \
    --cc=dev@dpdk.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 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).