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

Reply via email to