On 25 November 2014 at 21:07, Mike Holmes <[email protected]> wrote:
>
>
> On 25 November 2014 at 12:03, Ola Liljedahl <[email protected]>
> wrote:
>>
>> Signed-off-by: Ola Liljedahl <[email protected]>
>
>
>
> Works on x86 - reported the correct number of cores available
> http://www.gnu.org/software/libc/manual/html_node/Processor-Resources.html
>
> So I assume it fixes the big.LITTLE hang, however the API is called
> sysconf_core_count and the meager docs say it is "Core count". We might
> want to name this sysconf_avalable_core_count if the difference is going to
> matter in the future.
I think in this case, the kernel for the ChromeBook2 is somehow configured for
8 cores. That's why _CONF returns 8. But only 4 are ever online at the same
time (and they are numbered 0..3).
Since binding a thread to one of those cores that are not online
doesn't automatically
activate the selected core, I don't think the "configured" number of
cores matters. Only
the cores that are already online can be used from ODP (unless ODP should start
bringing offline cores online but I don't think this is ODP's responsibility).
>
> I think this patch should improve the docs to clarify that it is the
> currently available core count even if we don't rename or add a new API.
Eventually the value pops out here:
odp_system_info.h:
/**
* Core count
*
* @return Core count
*/
int odp_sys_core_count(void);
The documentation is not specific at all for what cores that count.
-- Ola
>
>>
>> ---
>> On ARM big.LITTLE systems with cluster switching, return the actual number
>> of
>> currently usable CPU's (e.g. 4, not 8). Trying to bind threads to cores
>> 4..7
>> will just hang those threads.
>>
>> platform/linux-generic/odp_system_info.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/platform/linux-generic/odp_system_info.c
>> b/platform/linux-generic/odp_system_info.c
>> index 10665bb..60804cb 100644
>> --- a/platform/linux-generic/odp_system_info.c
>> +++ b/platform/linux-generic/odp_system_info.c
>> @@ -51,7 +51,7 @@ static int sysconf_core_count(void)
>> {
>> long ret;
>>
>> - ret = sysconf(_SC_NPROCESSORS_CONF);
>> + ret = sysconf(_SC_NPROCESSORS_ONLN);
>> if (ret < 0)
>> return 0;
>>
>> --
>> 1.9.1
>>
>>
>> _______________________________________________
>> lng-odp mailing list
>> [email protected]
>> http://lists.linaro.org/mailman/listinfo/lng-odp
>
>
>
>
> --
> Mike Holmes
> Linaro Sr Technical Manager
> LNG - ODP
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp