On Mon, 15 Nov 2010 19:08:44 +0100 Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> 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. -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html