DynamoRIO / DynamoRIO/dynamorio

Performance: Linux Chrome code cache thrashing due to reset_every_nth_pending

Open
#927 1 comment 0 reactions 0 assignees View on GitHub
Migrated OpSys-Linux Performance Priority-Medium
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

_From [rnk@google.com](https://code.google.com/u/rnk@google.com/) on October 03, 2012 12:16:02_

If I run Chrome on Linux under plain DR I get a big pile of syslogs from the various child processes:

The root cause is in core/vmareas.c add_to_pending_list() we have this code:

```
if (DYNAMO_OPTION(reset_every_nth_pending) > 0 &&
DYNAMO_OPTION(reset_every_nth_pending) == todelete->shared_delete_count) {
/* if too many pending entries are piling up, suspend all threads
* in order to free them immediately.
* we can get here multiple times before we actually do the reset
* (can dec and then re-inc shared_delete_count),
* but that's not a problem, except we have to move our stats inc
* into the reset routine itself.
*/
schedule_reset(RESET_PENDING_DELETION/*NYI: currently this is ignored and we
* do a full reset*/);
}
```

This doesn't happen on Windows. For now I'm working around it by passing -reset_every_nth_pending 0, and filing for future investigation.

It looks like there's a Linux specific issue that's causing deleted fragments to pile up.

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

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.