From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 396E08D97 for ; Mon, 18 Jan 2016 15:19:03 +0100 (CET) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP; 18 Jan 2016 06:18:04 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.22,312,1449561600"; d="scan'208";a="635509632" Received: from irsmsx107.ger.corp.intel.com ([163.33.3.99]) by FMSMGA003.fm.intel.com with ESMTP; 18 Jan 2016 06:18:02 -0800 Received: from irsmsx108.ger.corp.intel.com ([169.254.11.160]) by IRSMSX107.ger.corp.intel.com ([169.254.10.55]) with mapi id 14.03.0248.002; Mon, 18 Jan 2016 14:18:01 +0000 From: "De Lara Guarch, Pablo" To: "bombermag@gmail.com" Thread-Topic: [dpdk-users] Broken hash table functions with CFLAGS -O3 Thread-Index: AQHRUfbNRlIxGNfO30mGrvEHI79cQ58BUhvg Date: Mon, 18 Jan 2016 14:18:00 +0000 Message-ID: References: <1453124862-35513-1-git-send-email-pablo.de.lara.guarch@intel.com> In-Reply-To: <1453124862-35513-1-git-send-email-pablo.de.lara.guarch@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZWQ4MzcxYWQtZWQ1Mi00NjlhLTgxMjQtMzYyZWYxYTE0MmM3IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjQuMTAuMTkiLCJUcnVzdGVkTGFiZWxIYXNoIjoieWV6YmRSSDZXOVByMUpobjRWa2Z3Qlo1SXhwejRyQnVNUzVXeWRpckFrYz0ifQ== x-ctpclassification: CTP_IC x-originating-ip: [163.33.239.181] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [dpdk-users] Broken hash table functions with CFLAGS -O3 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2016 14:19:03 -0000 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 >=20 > > -----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, n= ot > > always, but sometimes. > > Please see this youtube video, where I'm demonstrating this bug: > > https://www.youtube.com/watch?v=3DvsXVxISpmnU > > 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 >=20 > Hello Dmitriy, >=20 > 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. >=20 > Actually, the hash table is fine. The issue is that your key is a structu= re > of a 4-byte and 2-byte integers, so your key size should be 6, but instea= d, > it is 8, because sizeof(struct...) includes padding to have it multiple o= f 4. > Most times, that padding is 0, so it is fine, but when that padding is no= t 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 t= o 6. >=20 > 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=3Dgcc > > COLLECT_LTO_WRAPPER=3D/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto- > wrapper > > Target: x86_64-redhat-linux > > Configured with: ../configure --prefix=3D/usr --mandir=3D/usr/share/man= -- > > infodir=3D/usr/share/info --with-bugurl=3Dhttp://bugzilla.redhat.com/bu= gzilla > > --enable-bootstrap --enable-shared --enable-threads=3Dposix --enable- > > checking=3Drelease --with-system-zlib --enable-__cxa_atexit --disable- > > libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-i= d - > > -with-linker-hash-style=3Dgnu --enable-languages=3Dc,c++,objc,obj- > > c++,java,fortran,ada,go,lto > > --enable-plugin --enable-initfini-array --disable-libgcj --with- > > isl=3D/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/= isl- > > install > > --with-cloog=3D/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redh= at- > > linux/cloog-install > > --enable-gnu-indirect-function --with-tune=3Dgeneric --with-arch_32=3Dx= 86-64 - > > -build=3Dx86_64-redhat-linux Thread model: posix gcc version 4.8.5 2015= 0623 > > (Red Hat 4.8.5-4) (GCC) > > > > Intel(R) Xeon(R) CPU E5-2643 v2 @ 3.50GHz