diff options
author | Nathan Scott <nathans@redhat.com> | 2021-08-17 14:41:55 +1000 |
---|---|---|
committer | Nathan Scott <nathans@redhat.com> | 2021-08-17 14:41:55 +1000 |
commit | c7f634ec218da6bdb3bab9e9cd6fa7b2df3fcea8 (patch) | |
tree | 5522eeea3bdbec5e6bbbe614845a8463452740b8 /pcp | |
parent | c401ac3a98563f84e1957445f4c5643186e0e9d3 (diff) |
PCP: ensure unsigned types used throughout CPU count detection
This cannot be negative in these code locations, but for the
purposes of static checking like Coverity scan make it clear
and used the same unsigned type as ProcessList.h for the CPU
count variable (matching PL activeCPUs and existingCPUs).
Diffstat (limited to 'pcp')
-rw-r--r-- | pcp/PCPProcessList.c | 2 | ||||
-rw-r--r-- | pcp/Platform.c | 8 | ||||
-rw-r--r-- | pcp/Platform.h | 4 |
3 files changed, 7 insertions, 7 deletions
diff --git a/pcp/PCPProcessList.c b/pcp/PCPProcessList.c index e4f9a5fd..3001d5e8 100644 --- a/pcp/PCPProcessList.c +++ b/pcp/PCPProcessList.c @@ -35,7 +35,7 @@ static void PCPProcessList_updateCPUcount(PCPProcessList* this) { unsigned int cpus = Platform_getMaxCPU(); if (cpus == pl->existingCPUs) return; - if (cpus <= 0) + if (cpus == 0) cpus = pl->activeCPUs; if (cpus <= 1) cpus = pl->activeCPUs = 1; diff --git a/pcp/Platform.c b/pcp/Platform.c index 97788569..d5a76b55 100644 --- a/pcp/Platform.c +++ b/pcp/Platform.c @@ -396,15 +396,15 @@ void Platform_getLoadAverage(double* one, double* five, double* fifteen) { } } -int Platform_getMaxCPU(void) { +unsigned int Platform_getMaxCPU(void) { if (pcp->ncpu) return pcp->ncpu; pmAtomValue value; - if (PCPMetric_values(PCP_HINV_NCPU, &value, 1, PM_TYPE_32) != NULL) - pcp->ncpu = value.l; + if (PCPMetric_values(PCP_HINV_NCPU, &value, 1, PM_TYPE_U32) != NULL) + pcp->ncpu = value.ul; else - pcp->ncpu = -1; + pcp->ncpu = 1; return pcp->ncpu; } diff --git a/pcp/Platform.h b/pcp/Platform.h index 9d0c8f53..dcb8dc98 100644 --- a/pcp/Platform.h +++ b/pcp/Platform.h @@ -54,7 +54,7 @@ typedef struct Platform_ { long long btime; /* boottime in seconds since the epoch */ char* release; /* uname and distro from this context */ int pidmax; /* maximum platform process identifier */ - int ncpu; /* maximum processor count configured */ + unsigned int ncpu; /* maximum processor count configured */ } Platform; extern ProcessField Platform_defaultFields[]; @@ -79,7 +79,7 @@ void Platform_getLoadAverage(double* one, double* five, double* fifteen); long long Platform_getBootTime(void); -int Platform_getMaxCPU(void); +unsigned int Platform_getMaxCPU(void); int Platform_getMaxPid(void); |