Exemple #1
0
bool DT_Mdep_GetCpuStat(DT_CpuStat * cpu_stat)
{
	unsigned long i, nice = 0;
	unsigned long jif = jiffies;
	int cpu, num_of_cpus;
	cpu_stat->user = 0;
	cpu_stat->system = 0;
	cpu_stat->idle = 0;
	num_of_cpus = 0;
	cpu = 0;

	// code for vanila 2.4 kernel
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)) && !defined RHAS3
	for (i = 0; i < smp_num_cpus; i++) {
		cpu = cpu_logical_map(i);
		cpu_stat->user += (unsigned long)kstat.per_cpu_user[cpu];
		nice += (unsigned long)kstat.per_cpu_nice[cpu];
		cpu_stat->system += (unsigned long)kstat.per_cpu_system[cpu];
	}
	// kernel 2.4 AS3.0
#elif (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)) && defined RHAS3
	cpu_stat->user = kstat_sum(accumulated_time.u_usec);
	cpu_stat->system = kstat_sum(accumulated_time.s_usec);
	nice = kstat_sum(accumulated_time.n_usec);
	// kernel 2.6
#elif LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0)
	for (i = 0; i < NR_CPUS; i++) {
		if (cpu_possible(i)) {
			cpu_stat->system += kstat_cpu(i).cpustat.system;
			cpu_stat->user += kstat_cpu(i).cpustat.user;
			nice += kstat_cpu(i).cpustat.nice;
			num_of_cpus = +1;
		}
	}
#endif
	cpu_stat->idle =
	    (unsigned long)(jif * num_of_cpus -
			    (cpu_stat->user + nice + cpu_stat->system));
	return true;
}
Exemple #2
0
static void
cn_print(int zflag, int vflag)
{
	int field_width;

	field_width = getstats_nfs();
	if (field_width == 0)
		return;

	if (vflag == 0) {
		kstat_sum(nfs_client_kstat, nfs4_client_kstat, ksum_kstat);
		stat_print("\nClient nfs:", ksum_kstat, &old_ksum_kstat.kst,
		    field_width, zflag);
	}

	if (vflag == 2 || vflag == 3) {
		stat_print("\nClient nfs:", nfs_client_kstat,
		    &old_nfs_client_kstat.kst, field_width, zflag);
	}

	if (vflag == 4) {
		stat_print("\nClient nfs:", nfs4_client_kstat,
		    &old_nfs4_client_kstat.kst, field_width, zflag);
	}

	if (vflag == 2 || vflag == 0) {
		field_width = getstats_rfsreq(2);
		req_print(rfsreqcnt_v2_kstat, &old_rfsreqcnt_v2_kstat.kst,
		    2, field_width, zflag);
	}

	if (vflag == 3 || vflag == 0) {
		field_width = getstats_rfsreq(3);
		req_print(rfsreqcnt_v3_kstat, &old_rfsreqcnt_v3_kstat.kst, 3,
		    field_width, zflag);
	}

	if (vflag == 4 || vflag == 0) {
		field_width = getstats_rfsreq(4);
		req_print_v4(rfsreqcnt_v4_kstat, &old_rfsreqcnt_v4_kstat.kst,
		    field_width, zflag);
	}
}