On Tue, 2011-02-15 at 16:35 +0200, Avi Kivity wrote: > On 02/11/2011 08:19 PM, Glauber Costa wrote: > > This patch accounts steal time time in kernel/sched. > > I kept it from last proposal, because I still see advantages > > in it: Doing it here will give us easier access from scheduler > > variables such as the cpu rq. The next patch shows an example of > > usage for it. > > > > Since functions like account_idle_time() can be called from > > multiple places, not only account_process_tick(), steal time > > grabbing is repeated in each account function separatedely. > > > > I still don't see how we export this to userspace for top(1) and friends. > The existing steal time stuff is: kernel/sched.c:account_steal_time() cpustat->steal = cputime64_add(cpustat->steal, cputime64); and fs/proc/stat.c:show_stat() steal = cputime64_add(steal, kstat_cpu(i).cpustat.steal); seq_printf(p, "cpu %llu %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), (unsigned long long)cputime64_to_clock_t(idle), (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(guest), (unsigned long long)cputime64_to_clock_t(guest_nice)); etc.. Glauber's patch is making sure we call account_steal_time(), which is currently only called from arch code like: # git grep account_steal_ arch/ia64/xen/time.c: account_steal_ticks(stolen); arch/powerpc/kernel/time.c: account_steal_time(stolen); arch/s390/kernel/vtime.c: account_steal_time(steal); arch/x86/xen/time.c: account_steal_ticks(ticks); include/linux/kernel_stat.h:extern void account_steal_time(cputime_t); include/linux/kernel_stat.h:extern void account_steal_ticks(unsigned long ticks); kernel/sched.c:void account_steal_time(cputime_t cputime) kernel/sched.c:void account_steal_ticks(unsigned long ticks) kernel/sched.c: account_steal_time(jiffies_to_cputime(ticks)); -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html