[yocto] Why won't my app use multiple threads under 'valleyisland'?

Chris Tapp opensource at keylevel.com
Thu Jul 24 13:45:41 PDT 2014


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 at keylevel.com
www.keylevel.com






More information about the yocto mailing list