On Thu, Nov 14, 2013 at 07:26:06AM -0700, David Ahern wrote:On 11/14/13, 3:05 AM, Ingo Molnar wrote:
What am I missing?
I have spent quite a bit of time on this problem on this well. I think the
flush time needs to be based on the start time of each round, not the
minimum time observed across mmaps. I have tried the minimum time stamp
route and it still fails often enough to be annoying.
See builtin-kvm.c, perf_kvm__mmap_read(). The problem is that it takes time
to move from mmap to mmap and sample can come in behind you - an mmap that
has already be scanned with a timestamp less than what is determined to be
the lowest minimum for the samples actually read. 'perf kvm stat live' in a
nested environment is a stress test for the problem.
In which case you need the sliding sort window to be n*buf_size, where n
is the number of buffers flushed into the one file. Or move to one file
per buffer and merge sort the lot, buffers should be monotonic.