Messages in this thread | | | From | Steve MacLean <> | Subject | RE: [PATCH] perf map: fix overlapped map handling | Date | Sat, 28 Sep 2019 01:32:18 +0000 |
| |
>> An earlier version of this patch used: >> after->start = map->end; >> + after->pgoff += map->end - pos->start; >> >> Instead of the newer Functionally equivalent: >> after->start = map->end; >> + after->pgoff = pos->map_ip(pos, map->end); >> >> I preferred the latter form as it made more sense with the assertion that the mapping of map->end should match in pos and after. > > So, if they are equivalent then I think its better to use code that ressembles the kernel as much as possible, so that when in doubt we can compare the tools/perf calcs with how the kernel does it, filtering out things like the PAGE_SHIFT, can we go that way? > > Also do you have some reproducer, if you have one then we can try and have this as a 'perf test' entry, bolting some more checks into tools/perf/tests/perf-record.c or using it as a start for a test that stresses this code. > > This is not a prerequisite for having your fix on, but would help checking that perf doesn't regresses in this area. > > - Arnaldo
I have updated the patch to use the earlier version, which more closely matches the kernel.
I have updated the commit message to include the repro info.
I am including a few other patches I have generated while adding support for perf jitdump to coreclr.
| |