aboutsummaryrefslogtreecommitdiffstats
path: root/meta/conf/machine/include/tune-core2.inc
AgeCommit message (Collapse)Author
2015-07-02tune-core2.inc: set X86ARCH32 to i686 (instead of i586)Andre McCurdy
Use i686 as TARGET_ARCH for 32bit core2 (and corei7 and atom) builds. In most cases, i586 and i686 are equivalent values for TARGET_ARCH, however one important exception is glibc. When configured for i686, glibc enables optimised string functions (SSE, SSE2, etc), which are not used when building for i586. The benefits of i686 optimised string functions vary depending on the application and the CPU, however in some cases the improvements are significant. In one test, a 50% increase in FPS was seen when running the 'smashcat' benchmark [1] in a qtwebkit browser on an Intel Atom based SoC. The gain seems to comes from a 3x improvement in memcpy performance when copying graphics buffer lines (5120 bytes, or 1280 x 4 bytes/pixel), from the CPU to GPU. Note that very large memcpy's (e.g. 32MB) on the same machine show no particular performance increase between i586 and i686. [1] http://www.smashcat.org/av/canvas_test/ Warning: The change in TARGET_ARCH means that _i586 architecture specific over-rides will no longer take effect. Both oe-core and meta-oe have been updated to replace _i586 over-rides with _x86, however other layers may still need review and updating. Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2014-01-28tune: Make 32b or 64b explicit in tune name for core2Darren Hart
Core2 has both a 32b and a 64b variant. Currently, core2 implies 32b, while core2_64 is the 64b version. This implicit 32b mode will become confusing in later architectures, such as corei7, where it would be natural for people to assume "corei7" meant 64 bit. Rather than carrying forward an implicit 32b mode and rather than changing the naming scheme part way through the architecture hiearchy, make the 32b and 64b variant explicit in the tune name by changing core2 to core2-32. This patch also standardises on using '-' in the names. Signed-off-by: Darren Hart <dvhart@linux.intel.com> Cc: Richard Purdie <richard.purdie@linuxfoundation.org> Cc: Paul Eggleton <paul.eggleton@intel.com> Cc: Tom Zanussi <tom.zanussi@intel.com> Cc: Nitin Kamble <nitin.a.kamble@intel.com> Cc: Mark Hatle <mark.hatle@windriver.com> Cc: Bruce Ashfield <bruce.ashfield@windriver.com> Cc: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-28tune-core2: Only add the current ARCH to PACKAGE_EXTRA_ARCHSDarren Hart
Inherit the PACKAGE_EXTRA_ARCHS from i586 and only explicitly add core2 here. Signed-off-by: Darren Hart <dvhart@linux.intel.com> Cc: Richard Purdie <richard.purdie@linuxfoundation.org> Cc: Paul Eggleton <paul.eggleton@intel.com> Cc: Tom Zanussi <tom.zanussi@intel.com> Cc: Nitin Kamble <nitin.a.kamble@intel.com> Cc: Mark Hatle <mark.hatle@windriver.com> Cc: Bruce Ashfield <bruce.ashfield@windriver.com> Cc: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-28tune-core2: Replace -mtune=generic with -mtune=core2Darren Hart
-march specifies which ISA to use. -mtune specifies which cpu-type to optimize instruction ordering for, but not which ISA to use. There are times when it may make sense to specify mtune=generic and use a more specific march, such as core2, but the opposite makes little sense at all: use cpu-type specific ISA, but order the instructions generically. While the -mtune is implied by -march, gcc does not verify it is using -mtune=core2 with: gcc -Q -march=core2 --help=target Explicitly specify -mtune=core2 to be sure. Add a comment header describing the CPUs targeted by this tune file. Signed-off-by: Darren Hart <dvhart@linux.intel.com> Cc: Richard Purdie <richard.purdie@linuxfoundation.org> Cc: Paul Eggleton <paul.eggleton@intel.com> Cc: Tom Zanussi <tom.zanussi@intel.com> Cc: Nitin Kamble <nitin.a.kamble@intel.com> Cc: Mark Hatle <mark.hatle@windriver.com> Cc: Bruce Ashfield <bruce.ashfield@windriver.com> Cc: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-04-29conf/machine: use .= instead of += in TUNE_CCARGSMartin Jansa
* number of TUNE_CCARGS conditionals is important if we add extra space with each one in "else" branch I'm building for 2 MACHINEs one is cortexa9, second is cortexa8 few months ago we added TUNE_CCARGS[vardepvalue] in bitbake.conf http://git.openembedded.org/openembedded-core/commit/?id=03f1e34ea3ce80931e9c3cd2ab22824f28a7233b which fixed some cases (like mentioned tune-xscale and tune-arm926ejs) where both had unused TUNE_CCARGS when common DEFAULTTUNE was used. with cortexa[89] it's different, because cortexa9 has one extra TUNE_CCARGS TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "cortexa9", "-mtune=cortex-a9", "", d)}" which adds extra *space* even when not used because of '+=' and as result: $ bitbake-diffsigs tmp-eglibc/sstate-diff/1366797730/*/armv7*/adapterbase/*do_configure* basehash changed from f986789fb8fb3579ed6a3492cc8a8d10 to c851b5f838d945ee13072e9ad6725dca Variable TUNE_CCARGS value changed from ' -march=armv7-a -mthumb-interwork -mfloat-abi=softfp -mfpu=neon ' to ' -march=armv7-a -mthumb-interwork -mfloat-abi=softfp -mfpu=neon ' Hash for dependent task gcc-runtime_4.7.bb.do_populate_sysroot changed from bdeabf7a86958b9110b566344b7916de to 2be5618e6bc8c57ec9db5659bf217915 Hash for dependent task eglibc_2.17.bb.do_populate_sysroot changed from b4f40fc62dde684acd0a574532a55360 to 97fcb426603d4a1c1099c0504d2ebf7d Hash for dependent task glib-2.0_2.34.3.bb.do_populate_sysroot changed from fd2f90b83098c34e88d649d70f6ea4f5 to ebd740bb94ea3eb0a914efda6fc82c4a Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-04-04conf/machine/include: Cleanup IA tunings to match READMEMark Hatle
We perform a basic cleanup of the IA32 architecture and related tunings in order to match the rules and descriptions within the new tuning README file. A number of small issues were corrected in the "c3" tuning to bring it inline with the README. Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2011-12-12x86 tune: fix TUNE_PKGARCH definition for proper PACKAGE_ARCHNitin A Kamble
rpmbuild can not handle the PACKAGE_ARCH of these kinds: x86_64-x32, core2-64, core2-64-x32 With these kinds of PACKAGE_ARCH the --target parameter of rpmbuild becomes like: core2-64-x32-poky-linux-gnux32 ; And rpmbuild extracts %_target (arch) wrongly as core2 generating these kinds of rpms with incorrect filenames: zip-3.0-r0.core2.rpm So this commit fixes the issue by making PACKAGE_ARCH like this: x86_64_x32, core2_64, core2_64_x32 Now --target parameter of rpmbuild becomes like: core2_64_x32-poky-linux-gnux32 ; And rpmbuild extracts %_target (arch) correctly as core2_64_x32 generating these kinds of rpms with correct filenames: zip-3.0-r0.core2_64_x32.rpm Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2011-10-20x86 tune files: set baselib for x32 tune as libx32Nitin A Kamble
This ensures that on a multilib system the two executable formats don't conflict. Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2011-08-08x86 tune inc files: add x32 abi tune parametersNitin A Kamble
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2011-07-27tune-core2.inc: Drop X86ARCH32 usageRichard Purdie
Using i686 doesn't work well with locale generation and doesn't gain anything so revert to the i586 default. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-26arch-ia32.inc: Fix up TUNE_ARCH variable conflictsRichard Purdie
The current approach causes duplicate values to appear in the TUNE_ARCH field and this patch addresses that. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-25conf/machine/include: Start to fill out architecture specific tune include ↵Richard Purdie
files and tune features These changes revolve around the idea of tune features. These are represented by 'flag' strings that are included in the TUNE_FEATURES variable. Any string included in TUNE_FEATURES should also add a TUNEVALID[<name>] entry so we can know which flags are available in TUNE_FEATURES and have documentation about what the flags do. We will add sanity code to error if flags are listed in TUNE_FEATURES but are not documented in TUNEVALID. A given tune configuration will want to define one or more predetermined sets of _FEATURE flag lists. These are defined in the form TUNE_FEATURES_tune-<name>. For defined tune configuation, <name> should be added to the AVAILTUNE list so that we can determine what tune configurations are available. Flags cannot be used in this case as with TUNEVALID since its useful to be able to build up tune lists from other TUNE_FEATURES_tune-yyy options. A given tune configuration may also define PACKAGE_EXTRA_ARCHS_tune-<name> and BASE_LIB_tune-<name> to control the multilib location. All options can be overridden by the distro or local user configuration. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>