On Mon, Feb 6, 2017 at 1:36 PM, Shivappa Vikas <vikas.shiva...@intel.com> wrote: > > > On Mon, 6 Feb 2017, Luck, Tony wrote: > >>> 12) Whatever fs or syscall is provided instead of perf syscalls, it >>> should provide total_time_enabled in the way perf does, otherwise is >>> hard to interpret MBM values. >> >> >> It seems that it is hard to define what we even mean by memory bandwidth. >> >> If you are measuring just one task and you find that the total number of >> bytes >> read is 1GB at some point, and one second later the total bytes is 2GB, >> then >> it is clear that the average bandwidth for this process is 1GB/s. If you >> know >> that the task was only running for 50% of the cycles during that 1s >> interval, >> you could say that it is doing 2GB/s ... which is I believe what you were >> thinking when you wrote #12 above. But whether that is right depends a >> bit on *why* it only ran 50% of the time. If it was time-sliced out by the >> scheduler ... then it may have been trying to be a 2GB/s app. But if it >> was waiting for packets from the network, then it really is using 1 GB/s. > > > Is the requirement is to have both enabled and run time or just enabled time > (enabled time must be easy to report - just the wall time from start trace > to end trace)?
Both, but since the original requirements dropped rotation, then total_running == total_enabled. > > This is not reported correctly in the upstream perf cqm and for > cgroup -C we dont report it either (since we report the package). using the -x option shows the run time and the % enabled. Many tools uses that csv output. > > Thanks, > Vikas > > >> >> All bets are off if you are measuring a service that consists of several >> tasks running concurrently. All you can really talk about is the aggregate >> average bandwidth (total bytes / wall-clock time). It makes no sense to >> try and factor in how much cpu time each of the individual tasks got. >> >> -Tony >> >