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

i#5658: Add register barrier at rseq endpoints

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Derek Bruening requested to merge i5658-rseq-bbdup-drreg into master Sep 28, 2022
  • Overview 5
  • Commits 5
  • Pipelines 0
  • Changes 9

Adds a new label DR_NOTE_REG_BARRIER at each rseq endpoint which is read by drreg and treated as a barrier where all app values are brought back into their registers. This ensures the native rseq copy has the right input values for cases such as drbbdup where with multiple app block copies registers might not be restored until after the final block instr.

Augments the tool.drcacheoff.rseq test to load from enough registers (on x86 at least) to force drreg to use one of them, reproducing the crash. With the fix, the crash disappears.

Issue: #5658

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: i5658-rseq-bbdup-drreg