Messages in this thread | | | Date | Tue, 16 Nov 2010 09:51:01 +0100 | From | Martin Schwidefsky <> | Subject | Re: [RFC][PATCH v2 4/7] taskstats: Add per task steal time accounting |
| |
On Mon, 15 Nov 2010 19:08:44 +0100 Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
> On Mon, 2010-11-15 at 18:59 +0100, Martin Schwidefsky wrote: > > Steal time per task is at least good for performance problem analysis. > > Sometimes knowing what is not the cause of a performance problem can help you > > tremendously. If a task is slow and has no steal time, well then the hypervisor > > is likely not the culprit. On the other hand if you do see lots of steal time > > for a task while the rest of the system doesn't cause any steal time can tell > > you something as well. That task might hit a specific function which causes > > hypervisor overhead. The usefulness depends on the situation, it is another > > data point which may or may not help you. > > If performance analysis is the only reason, why not add a tracepoint on > vcpu enter that reports the duration the vcpu was out for and use perf > to gather said data? It can tell you what process was running and what > instruction it was at when the vcpu went away. > > No need to add 40 bytes per task for that.
Which vcpu enter? We usually have z/VM as our hypervisor and want to be able to do performance analysis with the data we gather inside the guest. There is no vcpu enter we could put a tracepoint on. We would have to put tracepoints on every possible interaction point with z/VM to get this data. To me it seems a lot simpler to add the per-task steal time.
And if it is really the additional 40 bytes on x86 that bother you so much, we could put them behind #ifdef CONFIG_VIRT_CPU_ACCOUNTING. There already is one in the task_struct for prev_utime and prev_stime.
-- blue skies, Martin.
"Reality continues to ruin my life." - Calvin.
| |