All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ming Liu <ming.liu@windriver.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH] sstate: Add optimizing logic for crosssdk setscene dependencies
Date: Tue, 7 Jan 2014 15:52:17 +0800	[thread overview]
Message-ID: <52CBB231.8050208@windriver.com> (raw)
In-Reply-To: <1389011136.22784.7.camel@ted>

[-- Attachment #1: Type: text/plain, Size: 3534 bytes --]

On 01/06/2014 08:25 PM, Richard Purdie wrote:
> On Thu, 2013-11-14 at 18:51 +0800, Ming Liu wrote:
>> This patch mainly aims to add optimisation for crosssdk setscene dependency
>> validating which we haven't handled in current logic, and which I think we
>> could have as we've already implemented to native/cross, although there
>> are albeit not many crossdk tasks, we could still get some performance
>> enhancement.
>>
>> And it also fix a vulnerability of some certain workflow, think about the
>> following scenario with current logic:
>>      bitbake nativesdk-eglibc-initial -c cleansstate
>>      bitbake gcc-crosssdk-initial -c clean
>>      bitbake gmp-native -c clean
>>      bitbake libmpc-native -c clean
>>      bitbake mpfr-native -c clean
>>      bitbake gcc-crosssdk-initial
>>      bitbake nativesdk-eglibc-initial
>>
>> Aboving will fail for absence of a few native libraries required by
>> gcc-crosssdk-initial.
>>
>> Also modified some places in current code except the optimisation, as
>> following:
>> 1 Remove isNative function since no code is referring it.
>> 2 Add do_package to the list that don't exist and are noexec.
> I've split this patch up as its doing too many things at once. In
> particular, I think we should keep the "isNativeCross()" function name
> instead of adding Crosssdk to the name since it just makes things more
> confusing to read.
I am on board with your comments.

>
> I've take a part for the crosssdk part in master-next which is being
> tested at the moment, can you resent the do_package part by itself
> please?
No problem, I will resend a patch soon with modifying the do_package 
part only.

>
> I don't quite understand how the sequence of commands above breaks
> things or how this patch fixes it. Are you sure this wasn't fixed by:
>
> http://git.yoctoproject.org/cgit.cgi/poky-contrib/commit/?h=ciorga/PUs&id=1dcbf3096d7d42032faade96dae89c25a4feca7a
>
> which would be the real bug?
I am pretty sure they are**NOT the same issue. The 1dcbf309 is about to 
fix gcc-crosssdk lacking its dependencies in bb, while in this case, 
it's due to some other setscene tasks(populate_sysroot) depended by 
gcc-crosssdk-initial's setscene task(populate_sysroot) were not 
validated correctly, without the modification to isNativeCross, the 
setscene_depvalid will return TRUE through:
......
             # Native/Cross populate_sysroot need their dependencies
             if isNativeCross(taskdependees[task][0]) and 
isNativeCross(taskdependees[dep][0]):
                 return False
             # Target populate_sysroot depended on by cross tools need 
to be installed
             if isNativeCross(taskdependees[dep][0]):
                 return False
             # Native/cross tools depended upon by target sysroot are 
not needed
             if isNativeCross(taskdependees[task][0]):
                 continue
......
     return True
......

for example, when the task is 'gmp-native', and the dep is 
'gcc-crosssdk-initial', it is absolutely wrong for gcc-crosssdk-initial 
needs its dependencies like gmp-native, libmpc-native, mpfr-native to be 
present in sysroot or its binaries will fail to be executed.

However, by double-checked the patch, I found that it had introduced a 
regression that binutils-crosssdk should not be added into safe dep list 
for it's in the DEPENDS of gcc-crosssdk-initial, I will send a fix for 
it too.

//Ming Liu
>
> Cheers,
>
> Richard
>
>
>


[-- Attachment #2: Type: text/html, Size: 4754 bytes --]

      reply	other threads:[~2014-01-07  7:52 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-14 10:51 [PATCH] sstate: Add optimizing logic for crosssdk setscene dependencies Ming Liu
2013-12-23  2:10 ` Ming Liu
2014-01-06 12:25 ` Richard Purdie
2014-01-07  7:52   ` Ming Liu [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=52CBB231.8050208@windriver.com \
    --to=ming.liu@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=richard.purdie@linuxfoundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.