All of lore.kernel.org
 help / color / mirror / Atom feed
* Why won't my app use multiple threads under 'valleyisland'?
@ 2014-07-24 20:45 Chris Tapp
  2014-07-25  0:44 ` OpenSSL 1.0.0m Mark Evans
  2014-07-29 15:41 ` [meta-intel] Why won't my app use multiple threads under 'valleyisland'? Darren Hart
  0 siblings, 2 replies; 6+ messages in thread
From: Chris Tapp @ 2014-07-24 20:45 UTC (permalink / raw)
  To: Yocto Project, meta-intel

I've got a recipe for an application. This has:

1) A main thread;
2) An OpenGL ('X' / EGL) graphics rendering thread created using posix threads;
3) As many threads as required from the graphics thread for GStreamer to service various pipelines.

On a Cedartrail platform this happily uses multiple cores.

However, if I use the same recipe under a 64-bit valleyisland build (daisy) it only ever uses a single core (and virtually grinds to a halt).

'top' shows CPU usage for the application never goes above 25% (J1900, so four cores available). Running four instances of 'yes' gets the total CPU usage to 100%, so all the cores are available.

'taskset' shows that the affinity mask for the application is not restricting the set of available cores.

Umm... Any ideas what's going on here?

It looks as if GStreamer and OpenGL are fighting for access to something, but the pipelines only render to 'fakesink' and 'appsink'.

Chris Tapp

opensource@keylevel.com
www.keylevel.com





^ permalink raw reply	[flat|nested] 6+ messages in thread

* OpenSSL 1.0.0m
  2014-07-24 20:45 Why won't my app use multiple threads under 'valleyisland'? Chris Tapp
@ 2014-07-25  0:44 ` Mark Evans
  2014-07-25  0:51   ` Khem Raj
  2014-07-29 15:41 ` [meta-intel] Why won't my app use multiple threads under 'valleyisland'? Darren Hart
  1 sibling, 1 reply; 6+ messages in thread
From: Mark Evans @ 2014-07-25  0:44 UTC (permalink / raw)
  To: Yocto Project

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

question on the openssl recipes and openssl versions... Point me to the 
correct distro if this is the incorrect spot to ask this...

We're currently on Danny, 1.3.2. In there, the openssl version is 
1.0.0j. The openssl project is currently promoting  1.0.1h. Due to the 
multiple CVEs being released, we're wanting to move to the latest. But, 
looking at the poky releases, it seems that, after "Danny", Poky 
reverted back to 1.0.0e and added patches as CVEs are released. For 
example, here's the patches in "Daisy" (1.6.1):

    openssl-1.0.1e-cve-2014-0195.patch
    openssl-1.0.1e-cve-2014-0198.patch
    openssl-1.0.1e-cve-2014-0221.patch
    openssl-1.0.1e-cve-2014-0224.patch
    openssl-1.0.1e-cve-2014-3470.patch
    openssl-CVE-2010-5298.patch

Am I reading that correct? If I move to the recipes there, will that 
close current issues on openssl? Or, is there a recipe available to use 
1.0.1h?

Thanks for any info.
Mark Evans

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: OpenSSL 1.0.0m
  2014-07-25  0:44 ` OpenSSL 1.0.0m Mark Evans
@ 2014-07-25  0:51   ` Khem Raj
  2014-07-25  1:46     ` Mark Evans
  0 siblings, 1 reply; 6+ messages in thread
From: Khem Raj @ 2014-07-25  0:51 UTC (permalink / raw)
  To: Mark Evans; +Cc: Yocto Project

On Thu, Jul 24, 2014 at 5:44 PM, Mark Evans <mark.a.evans@gmail.com> wrote:
> question on the openssl recipes and openssl versions... Point me to the
> correct distro if this is the incorrect spot to ask this...
>
> We're currently on Danny, 1.3.2. In there, the openssl version is 1.0.0j.
> The openssl project is currently promoting  1.0.1h. Due to the multiple CVEs
> being released, we're wanting to move to the latest. But, looking at the
> poky releases, it seems that, after "Danny", Poky reverted back to 1.0.0e
> and added patches as CVEs are released. For example, here's the patches in
> "Daisy" (1.6.1):
>
> openssl-1.0.1e-cve-2014-0195.patch
> openssl-1.0.1e-cve-2014-0198.patch
> openssl-1.0.1e-cve-2014-0221.patch
> openssl-1.0.1e-cve-2014-0224.patch
> openssl-1.0.1e-cve-2014-3470.patch
> openssl-CVE-2010-5298.patch
>
> Am I reading that correct? If I move to the recipes there, will that close
> current issues on openssl? Or, is there a recipe available to use 1.0.1h?
>

oe-core/master is having 1.0.1h, you can backport that into your own
layer and tool your project
to use it.


> Thanks for any info.
> Mark Evans
>
> --
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: OpenSSL 1.0.0m
  2014-07-25  0:51   ` Khem Raj
@ 2014-07-25  1:46     ` Mark Evans
  0 siblings, 0 replies; 6+ messages in thread
From: Mark Evans @ 2014-07-25  1:46 UTC (permalink / raw)
  To: Khem Raj; +Cc: Yocto Project

Thanks for the nfo. I'll go there and take a look.
--MarkE

On 7/24/2014 7:51 PM, Khem Raj wrote:
> On Thu, Jul 24, 2014 at 5:44 PM, Mark Evans <mark.a.evans@gmail.com> wrote:
>> question on the openssl recipes and openssl versions... Point me to the
>> correct distro if this is the incorrect spot to ask this...
>>
>> We're currently on Danny, 1.3.2. In there, the openssl version is 1.0.0j.
>> The openssl project is currently promoting  1.0.1h. Due to the multiple CVEs
>> being released, we're wanting to move to the latest. But, looking at the
>> poky releases, it seems that, after "Danny", Poky reverted back to 1.0.0e
>> and added patches as CVEs are released. For example, here's the patches in
>> "Daisy" (1.6.1):
>>
>> openssl-1.0.1e-cve-2014-0195.patch
>> openssl-1.0.1e-cve-2014-0198.patch
>> openssl-1.0.1e-cve-2014-0221.patch
>> openssl-1.0.1e-cve-2014-0224.patch
>> openssl-1.0.1e-cve-2014-3470.patch
>> openssl-CVE-2010-5298.patch
>>
>> Am I reading that correct? If I move to the recipes there, will that close
>> current issues on openssl? Or, is there a recipe available to use 1.0.1h?
>>
> oe-core/master is having 1.0.1h, you can backport that into your own
> layer and tool your project
> to use it.
>
>
>> Thanks for any info.
>> Mark Evans
>>
>> --
>> _______________________________________________
>> yocto mailing list
>> yocto@yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/yocto
>>



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [meta-intel] Why won't my app use multiple threads under 'valleyisland'?
  2014-07-24 20:45 Why won't my app use multiple threads under 'valleyisland'? Chris Tapp
  2014-07-25  0:44 ` OpenSSL 1.0.0m Mark Evans
@ 2014-07-29 15:41 ` Darren Hart
  2014-07-30 22:14   ` Chris Tapp
  1 sibling, 1 reply; 6+ messages in thread
From: Darren Hart @ 2014-07-29 15:41 UTC (permalink / raw)
  To: Chris Tapp; +Cc: meta-intel, Yocto Project

On Thu, Jul 24, 2014 at 09:45:41PM +0100, Chris Tapp wrote:
> I've got a recipe for an application. This has:
> 
> 1) A main thread;
> 2) An OpenGL ('X' / EGL) graphics rendering thread created using posix threads;
> 3) As many threads as required from the graphics thread for GStreamer to service various pipelines.
> 
> On a Cedartrail platform this happily uses multiple cores.

Major difference here is graphics chip, cedartrail uses EMGD binary drivers,
baytrail (valleyisland) uses the open source Intel i965 drivers.

I recently (yesterday) updated meta-intel master and daisy to properly support
video acceleration in gstreamer 1.0 - I don't know if this impacts you or not.

> 
> However, if I use the same recipe under a 64-bit valleyisland build (daisy) it
> only ever uses a single core (and virtually grinds to a halt).
> 
> 'top' shows CPU usage for the application never goes above 25% (J1900, so four
> cores available). Running four instances of 'yes' gets the total CPU usage to
> 100%, so all the cores are available.

Does /proc/cpu list four cores?

> 
> 'taskset' shows that the affinity mask for the application is not restricting
> the set of available cores.
> 
> Umm... Any ideas what's going on here?
> 
> It looks as if GStreamer and OpenGL are fighting for access to something, but
> the pipelines only render to 'fakesink' and 'appsink'.
> 

I don't have any GL/GST development experience, so this is likely best taken to
those respective lists.

--
Darren


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [meta-intel] Why won't my app use multiple threads under 'valleyisland'?
  2014-07-29 15:41 ` [meta-intel] Why won't my app use multiple threads under 'valleyisland'? Darren Hart
@ 2014-07-30 22:14   ` Chris Tapp
  0 siblings, 0 replies; 6+ messages in thread
From: Chris Tapp @ 2014-07-30 22:14 UTC (permalink / raw)
  To: Darren Hart; +Cc: meta-intel, Yocto Project


On 29 Jul 2014, at 16:41, Darren Hart <dvhart@linux.intel.com> wrote:

> On Thu, Jul 24, 2014 at 09:45:41PM +0100, Chris Tapp wrote:
>> I've got a recipe for an application. This has:
>> 
>> 1) A main thread;
>> 2) An OpenGL ('X' / EGL) graphics rendering thread created using posix threads;
>> 3) As many threads as required from the graphics thread for GStreamer to service various pipelines.
>> 
>> On a Cedartrail platform this happily uses multiple cores.
> 
> Major difference here is graphics chip, cedartrail uses EMGD binary drivers,
> baytrail (valleyisland) uses the open source Intel i965 drivers.
> 
> I recently (yesterday) updated meta-intel master and daisy to properly support
> video acceleration in gstreamer 1.0 - I don't know if this impacts you or not.

Thanks for the pointer. I'll give it a try and see if it makes a difference.

> However, if I use the same recipe under a 64-bit valleyisland build (daisy) it
>> only ever uses a single core (and virtually grinds to a halt).
>> 
>> 'top' shows CPU usage for the application never goes above 25% (J1900, so four
>> cores available). Running four instances of 'yes' gets the total CPU usage to
>> 100%, so all the cores are available.
> 
> Does /proc/cpu list four cores?

It does.

I've also found that running the GStreamer pipeline outside of (and at the same time as) my application works as expected - i.e. more CPU resources are used and the application runs at the target loop time, so the system can definitely do what I want...

> 'taskset' shows that the affinity mask for the application is not restricting
>> the set of available cores.
>> 
>> Umm... Any ideas what's going on here?
>> 
>> It looks as if GStreamer and OpenGL are fighting for access to something, but
>> the pipelines only render to 'fakesink' and 'appsink'.
>> 
> 
> I don't have any GL/GST development experience, so this is likely best taken to
> those respective lists.

Thanks, I've already tried that and not got anything back ;-)

> --
> Darren

Chris Tapp

opensource@keylevel.com
www.keylevel.com





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-07-30 22:14 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-24 20:45 Why won't my app use multiple threads under 'valleyisland'? Chris Tapp
2014-07-25  0:44 ` OpenSSL 1.0.0m Mark Evans
2014-07-25  0:51   ` Khem Raj
2014-07-25  1:46     ` Mark Evans
2014-07-29 15:41 ` [meta-intel] Why won't my app use multiple threads under 'valleyisland'? Darren Hart
2014-07-30 22:14   ` Chris Tapp

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.