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
	
	Block a user