On Wed, Oct 02, 2013 at 02:18:21PM +0200, Jiri Olsa wrote: > On Fri, Sep 06, 2013 at 01:37:01PM -0600, David Ahern wrote: > > When processing events the session code has an ordered samples queue which > > is > > used to time-sort events coming in across multiple mmaps. At a later point > > in > > time samples on the queue are flushed up to some timestamp at which point > > the > > event is actually processed. > > > > When analyzing events live (ie., record/analysis path in the same command) > > there is a race that leads to corrupted events and parse errors which cause > > perf to terminate. The problem is that when the event is placed in the > > ordered > > samples queue it is only a reference to the event which is really sitting in > > the mmap buffer. Even though the event is queued for later processing the > > mmap > > tail pointer is updated which indicates to the kernel that the event has > > been > > processed. The race is flushing the event from the queue before it gets > > overwritten by some other event. For commands trying to process events live > > (versus just writing to a file) and processing a high rate of events this > > leads > > to parse failures and perf terminates. > > hi, > 'perf top -G dwarf' hit this due to longer callchains > processing your patch fixed that, thanks! ;-)
ugh... now looking closer on top processing, it does not seem to use queues ;-\ must be something else then.. > > > > > Examples hitting this problem are 'perf kvm stat live', especially with > > nested > > VMs which generate 100,000+ traces per second, and a command processing > > scheduling events with a high rate of context switching -- e.g., running > > 'perf bench sched pipe'. > > > > This patch offers live commands an option to copy the event when it is > > placed in > > the ordered samples queue. So I guess you have some other patch that actually sets session::copy_on_queue? jirka -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/