Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D dynamorio
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,467
    • Issues 1,467
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 44
    • Merge requests 44
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • DynamoRIO
  • dynamorio
  • Merge requests
  • !2870

i#2037: update memcache on re-takeover and query miss

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Derek Bruening requested to merge i2037-allmem-update into master Mar 06, 2018
  • Overview 2
  • Commits 3
  • Pipelines 0
  • Changes 4

Adds a complete maps file walk to update the memcache on re-taking-over the process for dr_api_start. The memcache is cleared beforehand to avoid both false positives and negatives in later queries. This helps to solve issues with a gap between dr_app_setup() and dr_app_start().

Does not update the executable areas or module list: they are more difficult to re-walk, and existing lazy updates to those will suffice for now, with a low risk of false positives.

Adds updating of the memcache on a query miss. Previously we would just continue to miss and walk the maps file every time.

Tested manually by disabling the i#2114 change so that a signal does a query, adding signals to the burst_threads test, and calling dr_app_setup() before creating the test's threads, causing queries to miss when delivering signals. It is difficult to create a regression test for this as the consequences are performance degradations rather than correctness, and these degradations only really show up at scale with hundreds of threads whose missing stacks are queried at once with no caching.

Fixes #2037 (closed)

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: i2037-allmem-update