introduce a new field in cpustat
Subsystems (2)
PATCH 1/2 introduce a new field in cpustat
introduce a new field, "guest", in cpustat to store the time used by the CPU to run virtual CPU. Modify /proc/stat to display this new field.
Signature · 2 lines
------------- Laurent.Vivier-6ktuUTfB/[email protected] -------------- "Software is hard" - Donald Knuth
fs/proc/proc_misc.c +10 -5
@@ -443,6 +443,7 @@int i;unsigned long jif;cputime64_t user, nice, system, idle, iowait, irq, softirq, steal; +cputime64_t guest;u64 sum =0 ;struct timespec boottime;unsigned int *per_irq_sum;
@@ -452,7 +453,7 @@return -ENOMEM ; user = nice = system = idle = iowait = - irq = softirq = steal = cputime64_zero; + irq = softirq = steal = guest = cputime64_zero;getboottime (&boottime); jif = boottime.tv_sec;
@@ -467,6 +468,7 @@ irq =cputime64_add (irq,kstat_cpu (i).cpustat.irq); softirq =cputime64_add (softirq,kstat_cpu (i).cpustat.softirq); steal =cputime64_add (steal,kstat_cpu (i).cpustat.steal); + guest =cputime64_add (guest,kstat_cpu (i).cpustat.guest);for (j =0 ; j <NR_IRQS ; j++) {unsigned int temp =kstat_cpu (i).irqs[j]; sum += temp;
@@ -474,7 +476,7 @@ } } - seq_printf(p, "cpu %llu %llu %llu %llu %llu %llu %llu %llu\n", + seq_printf(p, "cpu %llu %llu %llu %llu %llu %llu %llu %llu %llu\n", (unsigned long long)cputime64_to_clock_t(user), (unsigned long long)cputime64_to_clock_t(nice), (unsigned long long)cputime64_to_clock_t(system),
@@ -482,7 +484,8 @@ (unsigned long long )cputime64_to_clock_t (iowait), (unsigned long long )cputime64_to_clock_t (irq), (unsigned long long )cputime64_to_clock_t (softirq), - (unsigned long long)cputime64_to_clock_t(steal)); + (unsigned long long )cputime64_to_clock_t (steal), + (unsigned long long)cputime64_to_clock_t(guest));for_each_online_cpu (i) {/* Copy values here to work around gcc-2.95.3, gcc-2.96 */
@@ -494,7 +497,8 @@ irq =kstat_cpu (i).cpustat.irq; softirq =kstat_cpu (i).cpustat.softirq; steal =kstat_cpu (i).cpustat.steal; - seq_printf(p, "cpu%d %llu %llu %llu %llu %llu %llu %llu %llu\n", + guest =kstat_cpu (i).cpustat.guest; + seq_printf(p, "cpu%d %llu %llu %llu %llu %llu %llu %llu %llu %llu\n", i, (unsigned long long)cputime64_to_clock_t(user), (unsigned long long)cputime64_to_clock_t(nice),
@@ -503,7 +507,8 @@ (unsigned long long )cputime64_to_clock_t (iowait), (unsigned long long )cputime64_to_clock_t (irq), (unsigned long long )cputime64_to_clock_t (softirq), - (unsigned long long)cputime64_to_clock_t(steal)); + (unsigned long long )cputime64_to_clock_t (steal), + (unsigned long long)cputime64_to_clock_t(guest)); }seq_printf (p,"intr %llu" , (unsigned long long )sum);
include/linux/kernel_stat.h +1 -0
@@ -23,6 +23,7 @@cputime64_t idle;cputime64_t iowait;cputime64_t steal; +cputime64_t guest; };struct kernel_stat {
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel