Hi! On Tue, Nov 24, 2020 at 03:36:45PM +0100, Jiri Olsa wrote: > On Tue, Nov 24, 2020 at 11:29:15AM +0100, Petr Malat wrote: > > Both mmapped and compressed events can be split by the buffer boundary, > > it doesn't make sense to handle them differently. > I'm going to need more than this, if there's a problem > with current code please share more details, what's > broken and how it shows It's easy to trigger the problem - make a perf recording larger than MMAP_SIZE (32MB on 32-bit platform) and run perf report on it. There is a small chance recorded events will be aligned on the 32 MB boundary and in that case just repeat the test.
The problem was introduced by "perf session: Avoid infinite loop when seeing invalid header.size", which instead of aborting the execution when there is a truncated event at the end of the file just terminated execution whenever there is a split event. Later then the problem has been noticed for compressed events and fixed by "perf session: Fix decompression of PERF_RECORD_COMPRESSED records" by effectively reverting "perf session: Avoid infinite loop when seeing invalid header.size" for compressed events, which left uncompressed events broken. I think the best is to revert these 2 changes and fix the original problem by aborting when there is no actual shift during remapping - as long as we shift, it's clear we must approach the end of the file so such an algorithm can't loop forever. BR, Petr