DynamoRIO / DynamoRIO/drmemory

heap header exceptions very slow due to unnecessary dr_memory_is_readable() check

Open
#171 0 comments 0 reactions 0 assignees View on GitHub
Migrated Priority-High
Dominant language
C
Stars
2.7k
Forks
290
PR merge metrics
No merged PRs in 30d

Description

_From [derek.br...@gmail.com](https://code.google.com/u/117968039472581148324/) on December 10, 2010 17:58:13_

PR 503779

the up-front dr_memory_is_readable() check on unaddr exceptions is wasteful
for heap header exceptions. moving it to after heap header and tls
exception checks results in a 10x speedup on twolf test!

it had >100K header exceptions and spent all its time in libc vfscanf
from the /proc/maps iteration: not sure why not using cached allmem.
now, we have no pc sampling hits at all in libc.

PR 503779: heap header exceptions very slow due to unnecessary
dr_memory_is_readable() check
- moved dr_memory_is_readable() check to after heap header and tls
exception checks, which results in a 10x speedup on twolf test!
it had >100K header exceptions and spent all its time in libc vfscanf
from the /proc/maps iteration: not sure why not using cached allmem.
now, we have no pc sampling hits at all in libc.

=> unknown large speedup on vortex (always killed it before), 10x speedup
on twolf and mcf, 5x on perlbmk and vpr, 40% on gcc (all test inputs)

_Original issue: http://code.google.com/p/drmemory/issues/detail?id=171_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.