Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Mark Hatle <mark.hatle@windriver.com>
To: Martin Jansa <martin.jansa@gmail.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [RFC 2/5] tune-xscale, tune-arm926ejs: add OPTDEFAULTTUNE variable and use more generic DEFAULTTUNE as default
Date: Tue, 2 Oct 2012 15:36:16 -0500	[thread overview]
Message-ID: <506B5040.6000703@windriver.com> (raw)
In-Reply-To: <20121002184355.GB15881@jama.jama.net>

On 10/2/12 1:43 PM, Martin Jansa wrote:
> On Thu, Sep 27, 2012 at 01:58:35PM -0500, Mark Hatle wrote:
>> Let me preface this by I have read the patch set.. Martin asked me to comment on
>> the items below...
>>
>> On 9/27/12 3:37 AM, Martin Jansa wrote:
>>> On Sat, Sep 22, 2012 at 06:45:44PM +0100, Richard Purdie wrote:
>>>> On Sat, 2012-09-22 at 18:51 +0200, Martin Jansa wrote:
>>>>> * bitbake.conf has OPTDEFAULTTUNE with weak default value of DEFAULTTUNE
>>>>> * this way xscale or arm926ejs is not used by default when some machine
>>>>>     includes its tune*.inc, but it's easy for DISTRO to say it wants
>>>>>     OPTDEFAULTTUNE for some packages or always (if they don't want to
>>>>>     share built packages between xscale and arm926ejs).
>>>>>
>>>>> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
>>>>> ---
>>>>>    meta/conf/bitbake.conf                       | 1 +
>>>>>    meta/conf/machine/include/tune-arm926ejs.inc | 3 ++-
>>>>>    meta/conf/machine/include/tune-xscale.inc    | 3 ++-
>>>>>    3 files changed, 5 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
>>>>> index 9b41749..e433fcb 100644
>>>>> --- a/meta/conf/bitbake.conf
>>>>> +++ b/meta/conf/bitbake.conf
>>>>> @@ -95,6 +95,7 @@ HOST_LD_ARCH = "${TARGET_LD_ARCH}"
>>>>>    HOST_AS_ARCH = "${TARGET_AS_ARCH}"
>>>>>    HOST_EXEEXT = ""
>>>>>
>>>>> +OPTDEFAULTTUNE ??= "${DEFAULTTUNE}"
>>>>>    TUNE_ARCH ??= "INVALID"
>>>>>    TUNE_CCARGS ??= ""
>>>>>    TUNE_LDARGS ??= ""
>>>>
>>>> As I've said previously, I do not think OPTDEFAULTTUNE is clear in usage
>>>> or in meaning and we need to find a better solution. I'm therefore not
>>>> keen on this change.
>>>
>>> OK, what about the rest of patchset (without OPTDEFAULTTUNE bits) to use
>>> different PKGARCH for different TUNE_CCARGS?
>>
>> I've been an advocate for a while that the processor optimization (CCARGS) does
>> make it into the PKGARCH.  ARMPKGSFX_CPU seems like a reasonable approach to do
>> this.  It allows each tune to set something to tell people what that binary is
>> really built for, and for the 'base' tunes (i.e. armv5) it can be left off.
>>
>> The only concern I have with that is:
>>
>> +ARMPKGSFX_CPU = "${@bb.utils.contains("TUNE_FEATURES", "arm926ejs",
>> "-arm926ejs", "", d)}"
>>
>> That probably should be a .= instead of just '='.  That way if the user loads
>> multiple compatible tunes the right ARMPKGSFX_CPU will be used.  (Alternatively
>> using the overrides would work as well for this.. i.e.
>> ARMPKGSFX_CPU_tune-arm926ejs instead...
>>
>> I see Patch 5/5 instead moves toward the ARMPKGARCH usage instead...  This is
>> fine as well, and it was designed to be overriden.. but again the .= or
>> -tune_... syntax should be used...
>
> I've updated contrib/jansa/tune-test with this.
> http://git.openembedded.org/openembedded-core-contrib/log/?h=jansa/tune-test
>
> While changing that to use e.g.
> ARMPKGARCH_tune-xscale
> I've noticed that _tune-foo are not valid OVERRIDE, so I had to add
> ARMPKGARCH = "${ARMPKGARCH_tune-${DEFAULTTUNE}}"
> in arch-arm.inc and then define ARMPKGARCH_tune-foo for every supported
> arm tune (otherwise it's expanded like this TUNE_PKGARCH (${ARMPKGARCH_tune-armv5te}te).).
>
> This makes whole
> TUNE_PKGARCH = "${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}"
> a bit less usefull, maybe ARMPKGSFX_CPU was better approach..

I've clarified with RP on this.  Tune values are not a 'true' override because 
of evaluation time of overrides.  We want the DEFAULTTUNE to be changeable 
during the build process to allow multilibs, alternative configurations, etc.

So in the tunes to do override-like implementations, you will need:

ARMPKGARCH = "${ARMPKGARCH_tune-${DEFAULTTUNE}}"

and then in each tune fragment:

ARMPKGARCH_tune-foo = "bar"

--Mark

> Cheers,
>
>>
>> Anyway, my point in this is I like having the stuff unique, but we need to be
>> sure that you can specify more then one tune file during a build w/o clashes.
>>
>>>> I also still think this is a distro packaging issue and should be solved
>>>> by the distro, even if that means more complexity there. That is the
>>>> right place for this particular complexity IMO. I'm happy to support
>>>> that from the core but not in something as user visible and confusing as
>>>> this variable.
>>>
>>> Agreed OPTDEFAULTTUNE is to help distro configs, because complexity
>>> there will be much worse then when it's defined in tune-* files, because
>>> now will have to define DEFAULTTUNE/OPTDEFAULTTUNE for each MACHINE (or
>>> TUNE_FEATURE) it supports and it's less orthogonal (machine/distro
>>> config) then it could be.
>>
>> I really don't have a strong opinion on this either way.  I know for the stuff
>> I've done in the past (not oe-based) we've just manually configured (the
>> equivalent of the distro conf) with the information on the handful of items that
>> people wanted optimized the most...  eglibc, openssl, mysql/posgresql...
>> otherwise folks don't seem to care, and re-use works fine.
>>
>> If the list is small (i.e. less then 10 packages) that specifying it via package
>> specific overrides in the distro file should be fine.. if it's more then 10
>> (typically) then we need to start looking for another approach.
>>
>> I'd almost suggest in the distro file you could do:
>>
>> OPTDEFAULTTUNE = "$@{...}" where ... is check for something set by the BSP (or
>> elsewhere), if set use that value, otherwise using the DEFAULTTUNE value.
>>
>> DEFAULTTUNE-<pn> = "${OPTDEFAULTTUNE}"
>>
>> and then everything can be encapsulated into the distro file (and distro BSPs).
>>    The downside of this approach is that it's not the 'standard' implementation.
>>
>> --Mark
>>
>>> Cheers,
>>>
>>>
>>>
>>> _______________________________________________
>>> Openembedded-core mailing list
>>> Openembedded-core@lists.openembedded.org
>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>>
>>
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>




  reply	other threads:[~2012-10-02 20:49 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-22 16:51 [RFC 0/5] OPTDEFAULTTUNE for arm tune files Martin Jansa
2012-09-22 16:51 ` [RFC 1/5] arch-arm: add ARMPKGSFX_CPU to TUNE_PKGARCH because we're using different TUNE_CCARGS Martin Jansa
2012-09-22 16:51 ` [RFC 2/5] tune-xscale, tune-arm926ejs: add OPTDEFAULTTUNE variable and use more generic DEFAULTTUNE as default Martin Jansa
2012-09-22 17:45   ` Richard Purdie
2012-09-27  8:37     ` Martin Jansa
2012-09-27 18:58       ` Mark Hatle
2012-09-27 19:12         ` Martin Jansa
2012-09-27 19:18           ` Mark Hatle
2012-09-27 19:40             ` Martin Jansa
2012-09-27 19:53               ` Mark Hatle
2012-09-27 20:16                 ` Martin Jansa
2012-09-28 11:02         ` Phil Blundell
2012-09-28 18:21           ` Martin Jansa
2012-10-02 18:43         ` Martin Jansa
2012-10-02 20:36           ` Mark Hatle [this message]
2012-10-02 20:38             ` Martin Jansa
2012-10-02 20:47               ` Mark Hatle
2012-09-22 16:51 ` [RFC 3/5] optimized-tune.inc: add optional distro include Martin Jansa
2012-09-22 16:51 ` [RFC 4/5] bitbake.conf: add TUNE_CCARGS[vardepvalue] Martin Jansa
2012-09-22 16:51 ` [RFC 5/5] tune-xscale, tune-arm926ejs: drop ARMPKGSFX_CPU, change ARMPKGARCH instead Martin Jansa
2012-10-04 13:23 ` [PATCH 0/7] conf/machine: fix arm tune files Martin Jansa
2012-10-04 13:23   ` [PATCH 1/7] tune-xscale: replace TUNE_CCARGS for webkit-gtk and cairo only with xscale in TUNE_FEATURES Martin Jansa
2012-10-04 16:55     ` Khem Raj
2012-10-04 17:13       ` Martin Jansa
2012-10-04 13:23   ` [PATCH 2/7] bitbake.conf: add TUNE_CCARGS[vardepvalue] Martin Jansa
2012-10-04 13:23   ` [PATCH 3/7] tune-cortexr4: fix march value Martin Jansa
2012-10-04 16:55     ` Khem Raj
2012-10-04 13:23   ` [PATCH 4/7] arm/arch-arm*: define ARMPKGARCH_tune-* for default tunes Martin Jansa
2012-10-04 13:23   ` [PATCH 5/7] arch-arm: define different ARMPKGARCH when different CCARGS are used Martin Jansa
2012-10-04 13:23   ` [PATCH 6/7] tune-*: define more generic DEFAULTTUNE to share feed between machines Martin Jansa
2012-10-04 13:23   ` [PATCH 7/7] scripts/sstate-diff.sh: add simple script to compare sstate checksums between MACHINEs Martin Jansa
2012-12-04 12:07     ` [PATCHv2] " Martin Jansa
2012-12-04 13:03       ` Richard Purdie
2012-12-04 15:24         ` [PATCHv3] " Martin Jansa
2012-12-04 15:26         ` [PATCHv4] scripts/sstate-diff-machines.sh: " Martin Jansa

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=506B5040.6000703@windriver.com \
    --to=mark.hatle@windriver.com \
    --cc=martin.jansa@gmail.com \
    --cc=openembedded-core@lists.openembedded.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