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
  • !2832

i#2820: trace a subset of threads

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Derek Bruening requested to merge i2820-thread-subset into master Feb 14, 2018
  • Overview 1
  • Commits 2
  • Pipelines 0
  • Changes 8

Adds a thread filtering feature to drcachesim, driven by a new API routine drmemtrace_filter_threads() which decides for each thread whether to trace it. In the tracer, untraced threads have no trace buffer, which serves as the flag indicating to skip instrumentation. This flag is checked via the same mechanism as skipping the clean call (the code is shared here as a new utility insert_conditional_skip()), using jecxz on x86.

There are some complexities with the extra internal control for regular and cache-filter modes where we need to insert barriers and sometimes wait for spills we don't truly need. The benefit is that in the end the instrumentation is 3x faster than an approach of always filling the per-thread buffers and filtering the threads only on i/o.

Adds two new bursty trace tests of the thread filter, one with and one without the cache filter.

Fixes #2820 (closed)

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: i2820-thread-subset