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