>> 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.

