fold duplication getting cpu metrics
This commit is contained in:
parent
aeb73b9982
commit
7dbdd9724a
|
@ -92,26 +92,32 @@ int sigar_swap_get(sigar_t *sigar, sigar_swap_t *swap)
|
||||||
return SIGAR_OK;
|
return SIGAR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
|
static void get_cpu_metrics(sigar_cpu_t *cpu, int32_t *cpu_time)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
struct pst_dynamic stats;
|
|
||||||
|
|
||||||
pstat_getdynamic(&stats, sizeof(stats), 1, 0);
|
cpu->user = cpu_time[CP_USER];
|
||||||
sigar->ncpu = stats.psd_proc_cnt;
|
cpu->sys = cpu_time[CP_SYS] + cpu_time[CP_SSYS];
|
||||||
|
cpu->nice = cpu_time[CP_NICE];
|
||||||
cpu->user = stats.psd_cpu_time[CP_USER];
|
cpu->idle = cpu_time[CP_IDLE];
|
||||||
cpu->sys = stats.psd_cpu_time[CP_SYS] + stats.psd_cpu_time[CP_SSYS];
|
cpu->wait = cpu_time[CP_WAIT];
|
||||||
cpu->nice = stats.psd_cpu_time[CP_NICE];
|
|
||||||
cpu->idle = stats.psd_cpu_time[CP_IDLE];
|
|
||||||
cpu->wait = stats.psd_cpu_time[CP_WAIT];
|
|
||||||
|
|
||||||
cpu->total = 0;
|
cpu->total = 0;
|
||||||
|
|
||||||
/* states above plus CP_BLOCK, CP_SWAIT, etc. (see sys/dk.h) */
|
/* states above plus CP_BLOCK, CP_SWAIT, etc. (see sys/dk.h) */
|
||||||
for (i=0; i<CPUSTATES; i++) {
|
for (i=0; i<CPUSTATES; i++) {
|
||||||
cpu->total += stats.psd_cpu_time[i];
|
cpu->total += cpu_time[i];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
|
||||||
|
{
|
||||||
|
struct pst_dynamic stats;
|
||||||
|
|
||||||
|
pstat_getdynamic(&stats, sizeof(stats), 1, 0);
|
||||||
|
sigar->ncpu = stats.psd_proc_cnt;
|
||||||
|
|
||||||
|
get_cpu_metrics(cpu, stats.psd_cpu_time);
|
||||||
|
|
||||||
return SIGAR_OK;
|
return SIGAR_OK;
|
||||||
}
|
}
|
||||||
|
@ -127,7 +133,6 @@ int sigar_cpu_list_get(sigar_t *sigar, sigar_cpu_list_t *cpulist)
|
||||||
sigar_cpu_list_create(cpulist);
|
sigar_cpu_list_create(cpulist);
|
||||||
|
|
||||||
for (i=0; i<sigar->ncpu; i++) {
|
for (i=0; i<sigar->ncpu; i++) {
|
||||||
int j;
|
|
||||||
sigar_cpu_t *cpu;
|
sigar_cpu_t *cpu;
|
||||||
struct pst_processor proc;
|
struct pst_processor proc;
|
||||||
|
|
||||||
|
@ -139,17 +144,7 @@ int sigar_cpu_list_get(sigar_t *sigar, sigar_cpu_list_t *cpulist)
|
||||||
|
|
||||||
cpu = &cpulist->data[cpulist->number++];
|
cpu = &cpulist->data[cpulist->number++];
|
||||||
|
|
||||||
cpu->user = proc.psp_cpu_time[CP_USER];
|
get_cpu_metrics(cpu, proc.psp_cpu_time);
|
||||||
cpu->sys = proc.psp_cpu_time[CP_SYS] + proc.psp_cpu_time[CP_SSYS];
|
|
||||||
cpu->nice = proc.psp_cpu_time[CP_NICE];
|
|
||||||
cpu->idle = proc.psp_cpu_time[CP_IDLE];
|
|
||||||
cpu->wait = proc.psp_cpu_time[CP_WAIT];
|
|
||||||
|
|
||||||
cpu->total = 0;
|
|
||||||
|
|
||||||
for (j=0; j<CPUSTATES; j++) {
|
|
||||||
cpu->total += proc.psp_cpu_time[j];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return SIGAR_OK;
|
return SIGAR_OK;
|
||||||
|
|
Loading…
Reference in New Issue