lkml.org 
[lkml]   [2006]   [Mar]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [Patch 6/8] virtual cpu run time
Andrew Morton wrote:

>Shailabh Nagar <nagar@watson.ibm.com> wrote:
>
>
>>delayacct-virtcpu.patch
>>
>>Distinguish between "wall-clock" and "virtual" cpu run times and return
>>both, at per-task and per-tgid granularity.
>>
>>Some architectures adjust tsk->utime+tsk->stime to reflect the time that
>>the kernel wasn't scheduled in hypervised environments and this is the
>>"wall-clock" cpu run time. "Virtual" cpu run time, on the other hand, does
>>not account for the kernel being descheduled.
>>
>>This patch allows the most accurate "virtual" cpu run time, collected by
>>the schedstats code (now shared with delay accounting code), to be returned
>>to user space, in addition to the "wall-clock" cpu time that was being exported
>>earlier. Both these times are useful for workload management in different
>>situations.
>>
>>In a non-virtualized environment, or on architectures which do not adjust
>>tsk->utime/stime, these will effectively be the same value but at different
>>granularities.
>>
>>...
>>
>>Index: linux-2.6.16/include/linux/taskstats.h
>>===================================================================
>>--- linux-2.6.16.orig/include/linux/taskstats.h 2006-03-29 18:13:18.000000000 -0500
>>+++ linux-2.6.16/include/linux/taskstats.h 2006-03-29 18:13:20.000000000 -0500
>>@@ -46,8 +46,14 @@ struct taskstats {
>> __u64 swapin_count;
>> __u64 swapin_delay_total; /* swapin page fault wait*/
>>
>>- __u64 cpu_run_total; /* cpu running time
>>- * no count available/provided */
>>+ __u64 cpu_run_real_total; /* cpu "wall-clock" running time
>>+ * Potentially accounts for cpu
>>+ * virtualization, on some arches
>>+ */
>>+ __u64 cpu_run_virtual_total; /* cpu "virtual" running time
>>+ * Uses time intervals as seen by
>>+ * the kernel
>>+ */
>> };
>>
>>
>>
>
>Again, the reader of this struct wants to know what the atomicity rules are.
>
>
Will add comment.

>
>
>>+ d->cpu_run_real_total = (tmp < (nsec_t)d->cpu_run_real_total)? 0: tmp;
>>
>>
>
> lval = expr1 ? expr2 : expr3;
>
>
didn't get whats wrong ?

>
>
>>+ tmp = (nsec_t)d->cpu_run_virtual_total
>>+ + (nsec_t)jiffies_to_usecs(t3) * 1000;
>>
>>
>
>umm, Linux doesn't have nsec_t any more.
>
>
>
Ok, will switch to s64 everywhere.

--Shailabh


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-03-30 18:13    [W:0.079 / U:0.060 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site