DPDK patches and discussions
 help / color / mirror / Atom feed
From: Neil Horman <nhorman@tuxdriver.com>
To: "De Lara Guarch, Pablo" <pablo.de.lara.guarch@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v5] eal_common_cpuflags: Fix %rbx corruption, and simplify the code
Date: Tue, 15 Apr 2014 10:56:12 -0400	[thread overview]
Message-ID: <20140415145612.GE3557@hmsreliant.think-freely.org> (raw)
In-Reply-To: <E115CCD9D858EF4F90C690B0DCB4D8970829CEB8@IRSMSX103.ger.corp.intel.com>

On Tue, Apr 15, 2014 at 02:09:34PM +0000, De Lara Guarch, Pablo wrote:
> Hi,
> 
> I have checked that on gcc-4.5, I get a compilation error due to the following patch:
> 
> > > Neil Horman reported that on x86-64 the upper half of %rbx would get 
> > > clobbered when the code was compiled PIC or PIE, because the 
> > > i386-specific code to preserve %ebx was incorrectly compiled.
> > > 
> > > However, the code is really way more complex than it needs to be.  
> > > For one thing, the CPUID instruction only needs %eax (leaf) and %ecx
> > > (subleaf) as parameters, and since we are testing for bits, we might 
> > > as well list the bits explicitly.  Furthermore, we can use an array 
> > > rather than doing a switch statement inside a structure.
> > > 
> > > Reported-by: Neil Horman <nhorman@tuxdriver.com>
> > > Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
> > > Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
> 
> The compilation error is:
> 
> /root/dpdk/lib/librte_eal/common/eal_common_cpuflags.c: In function 'rte_cpu_check_supported':
> /root/dpdk/lib/librte_eal/common/eal_common_cpuflags.c:271:48: error: array subscript is above array bounds
> make[7]: *** [eal_common_cpuflags.o] Error 1
> 
> This error is not present in newer gcc versions (4.6 and above).
> 
> Thanks,
> 
> Pablo de Lara
> DPDK SW Engineer
> 

What was the value of RTE_COMPILE_TIME_CPUFLAGS when you built your library?  If
you added defines for flag support that are not tested for yet in the
cpu_feature_table, that would be the error you would see I think

Regards
Neil


> --------------------------------------------------------------
> Intel Shannon Limited
> Registered in Ireland
> Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 Business address: Dromore House, East Park, Shannon, Co. Clare
> 
> 
> 

  reply	other threads:[~2014-04-15 14:56 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-15 14:09 De Lara Guarch, Pablo
2014-04-15 14:56 ` Neil Horman [this message]
2014-04-16  8:36   ` De Lara Guarch, Pablo
  -- strict thread matches above, loose matches on Subject: below --
2014-04-16  8:58 De Lara Guarch, Pablo
2014-04-16  9:06 ` Thomas Monjalon
2014-04-16 10:49 ` Neil Horman
2014-04-16 11:09   ` De Lara Guarch, Pablo
2014-04-16 12:53     ` Neil Horman
2014-03-20 16:39 [dpdk-dev] [RFC UNTESTED PATCH] " Neil Horman
2014-03-25 19:52 ` [dpdk-dev] [PATCH v5] " Neil Horman
2014-03-25 20:51   ` H. Peter Anvin
2014-04-02 11:16     ` Neil Horman
2014-04-02 11:53       ` Thomas Monjalon
2014-04-02 12:42     ` 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=20140415145612.GE3557@hmsreliant.think-freely.org \
    --to=nhorman@tuxdriver.com \
    --cc=dev@dpdk.org \
    --cc=pablo.de.lara.guarch@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).