tree d9233f013ba0a8a68cbb938fab0c4b16698e9f5b
parent b188cf6ae17b6bde5b56831b80e231c37370aefa
author gmarin13 <gmarin13@users.noreply.github.com> 1616525011 -0700
committer GitHub <noreply@github.com> 1616525011 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJgWjbTCRBK7hj4Ov3rIwAAdHIIAH+DcJwfc0/MBR57fLyg6nyg
 hHqPtoCHvqyPX86SQvcR2XhkR2F5V4ZCG8Rle4WxI2otvDhGSnakkCi2mdfgdfZs
 u77fKMYl1h0CXag70XA2wuxVd+/eMwnpzTSXjMRcfDykYqj6WJYIjp1ZyTF5ZPmo
 vQnqFfAL9NXwsLcJbWJn1lXHmloPffSEP28qcR/Td6XgADrOuRXH5b0zJkwajJa/
 tZ2rvGnNndw/5NttvOd37h1c6na18ssHAHypZUKLuAuBvE1z6IF5T7HVjKiPJQhc
 x42NzRYIYgpdEdoXA43wYlUdzouLEISjNg9RI4c3ZuKF7mj8Onz5Nhi95ZvOooM=
 =tmYu
 -----END PGP SIGNATURE-----
 

Handle large mappings in FindProgHeaderForMapping (#610)

* Remove unnecessary memoization.

* Handle large mappings in FindProgHeaderForMapping.

In some cases, the loader maps the entire program address space in a single
runtime mapping that starts from the file offset of the first segment but
encompasses additional segments. Such mappings may be split later when
samples are detected in the following segments. However, a perf.data file
still includes the large initial mapping, which should be associated with
the first segment both before and after an eventual split. For each
segment, we compute the aligned file offset of its mapping assuming 4k page
alignment, and we filter out program segments that have aligned file
offsets greater than the given mapping file offset.

Co-authored-by: Alexey Alexandrov <aalexand@users.noreply.github.com>