New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
64-bit shadow mapping init fails on Fedora 22 #1782
Comments
On Linux for 4B-2-1B mapping:
shd3's shadow: |
xref issue #825, this is a kind of known problem. The PIE address may cause mapping conflict. |
I am proposing a new mapping on Linux (different displacement from original):
|
The proposal above makes assumptions about app4 (vdso+vvar) not colliding with the stack in app3, as both share the same segment. I would suggest that we add first, get app4 (vdso) to wrap around, and then mask to get app3 (libs) to not be in the gap.
|
There are two potential problems of the above scheme:
|
Current mapping schema will cause app3 and app4 maps to the same shadow segment.
We could use more expensive instrumentation to check the source app address and translates them to different shadow memory segments. Or better with hybrid, we first use simple instrumentation, and on seeing application allocates memory from |
After cd2c3ec tried to fix this, it's still failing on Fedora 22 in every 3rd run or so:
|
According to
http://lxr.free-electrons.com/source/arch/x86/um/asm/elf.h
http://lxr.free-electrons.com/source/fs/compat_binfmt_elf.c
http://lxr.free-electrons.com/source/arch/x86/include/asm/elf.h
http://lxr.free-electrons.com/source/fs/binfmt_elf.c
http://lxr.free-electrons.com/source/arch/x86/mm/mmap.c
So it most likely that PIE is at We may want to change the whole mapping schema if things are getting worse. |
Travis just hit an umbra setup failure. https://travis-ci.com/github/DynamoRIO/drmemory/jobs/300701337
|
Merging into #1712. |
Many tests fail on x64 on Fedora 22:
Failures are due to shadow init failing:
Running
I can reproduce about 1/2 of the time.
Here is an example:
This fails:
For:
0x00000340'00000000-0x00000380'00000000
0x00000370'00000000-0x0000037f'fff00000
scale = UMBRA_MAP_SCALE_DOWN_4X,
The text was updated successfully, but these errors were encountered: