[meta-intel] Why won't my app use multiple threads under 'valleyisland'?

Darren Hart dvhart at linux.intel.com
Tue Jul 29 08:41:09 PDT 2014


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


More information about the meta-intel mailing list