how to find number of cpu (cores) available for application?
Alexander Boettcher
alexander.boettcher at genode-labs.com
Fri Jul 24 11:28:03 CEST 2020
Hello,
please check https://github.com/genodelabs/genode/issues/3786, which added the support to request the number of CPU available to libc recently.
Cheers,
Alex.
On 24.07.20 10:56, Alexander Tormasov via users wrote:
> I am trying to understand how many cpu or/and cored are available for running application.
>
> I check code related to sysctl in libports/src/lib/libc/sysctl.cc<http://sysctl.cc>
> and found
> extern "C" int __sysctl(const int *name, u_int namelen,
> void *oldp, size_t *oldlenp,
> const void *newp, size_t newlen)
> {
> …
> /* fallback values */
> {
> switch(index_a) {
>
> …
> case CTL_HW: switch(index_b) {
>
> case HW_MACHINE:
> *oldlenp = 0;
> return 0;
>
> case HW_NCPU:
> *(int*)oldp = 1;
> *oldlenp = sizeof(int);
> return 0;
>
> } break;
>
> …
> in short, if I used standardised for BSD code (like below in golang) it always return 1!
>
> int32
> getproccount(void)
> {
> int mib[2], out;
> size_t len;
>
> mib[0] = CTL_HW;
> mib[1] = HW_NCPU;
> len = sizeof(out);
> if(sysctl(mib, 2, &out, &len, NULL, 0) >= 0)
> return (int32)out;
> else
> return 0;
> }
>
> Any suggestions? How I can have portable code for Genode to obtain at least NCPU?
>
> Sincerely,
> Alexander
>
>
> _______________________________________________
> Genode users mailing list
> users at lists.genode.org
> https://lists.genode.org/listinfo/users
>
--
Alexander Boettcher
Genode Labs
https://www.genode-labs.com - https://www.genode.org
Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
More information about the users
mailing list