Messages in this thread | | | Date | Tue, 1 Dec 2020 20:09:28 +0100 | From | Jiri Olsa <> | Subject | Re: [PATCH v2 1/3] Revert "perf session: Fix decompression of PERF_RECORD_COMPRESSED records" |
| |
On Mon, Nov 30, 2020 at 12:40:20PM +0100, Petr Malat wrote: > Hi Jiří, > were you able to reproduce the issue? I may also upload perf-archive > if that would help.
oh yea ;-) seems like those 2 commits you reverted broke 32 bits perf for data files > 32MB
but the fix you did does not work for Alexey's test he mentioned in the commit:
$ perf record -z -- some_long_running_workload $ perf report --stdio -vv
it's failing for me with:
# ./perf report Couldn't allocate memory for decompression 0xfe6f3a [0x60]: failed to process type: 81 [Operation not permitted] Error: failed to process sample # To display the perf.data header info, please use --header/--header-only options. #
I think that's why here's special handling for compressed events, but I'll need to check on that in more detail, I was hoping for Alexey to answer ;-)
jirka
> Petr > > On Tue, Nov 24, 2020 at 07:15:19PM +0100, Petr Malat wrote: > > 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 >
| |