Skip to content
GitLab
    • Explore Projects Groups Snippets
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
  • !4042
An error occurred while fetching the assigned milestone of the selected merge_request.

i#4019: Raise event on rseq native abort

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Derek Bruening requested to merge i4019-rseq-xfer-event into master 4 years ago
  • Overview 17
  • Commits 5
  • Pipelines 0
  • Changes 13

When a migration or context switch happens during rseq native execution, we now raise a kernel xfer event. The event is of a new type DR_XFER_RSEQ_ABORT.

To implement this, the native abort handler cannot be linked and must return to dispatch. The special-exit-reason feature is used for this purpose.

Adds a test. To force a migration we use a system call, which we do not normally allow inside an rseq region. I added a debug-build exception for this particular test by executable name, along with a syscall discovery workaround for the attach test.

Adds a client via static DR to api.rseq to test that the event is raised.

Adds handling to drmemtrace in the tracer and raw2trace. For raw2trace we walk backward to undo the committing store that was recorded, since a real rseq abort would happen before the final store. I would like to add on offline trace rseq regression test, but it hits

Issue; #2350 (closed), #4019 (closed), #4041 (closed) Fixes #4019 (closed)

Activity

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply
  1. 22 Jan, 2020 5 commits
    • Derek Bruening's avatar
      Merge branch 'master' of github.com:DynamoRIO/dynamorio into i4019-rseq-xfer-event · ff6bf17b
      Derek Bruening authored 4 years ago
      ff6bf17b
    • Derek Bruening's avatar
      Fix arm build · 2848f7f3
      Derek Bruening authored 4 years ago
      2848f7f3
    • Derek Bruening's avatar
      Reviewer requests: augment comments to clarify callbacks and *native* aborts · ab1a3d83
      Derek Bruening authored 4 years ago
      ab1a3d83
    • Derek Bruening's avatar
      i#4019: Raise event on rseq native abort · aebad5bd
      Derek Bruening authored 4 years ago
      When a migration or context switch happens during rseq native
      execution, we now raise a kernel xfer event.  The event is of a new
      type DR_XFER_RSEQ_ABORT.
      
      To implement this, the native abort handler cannot be linked and must
      return to dispatch.  The special-exit-reason feature is used for this
      purpose.
      
      Adds a test.  To force a migration we use a system call, which we do
      not normally allow inside an rseq region.  I added a debug-build
      exception for this particular test by executable name, along with a
      syscall discovery workaround for the attach test.
      
      Adds a client via static DR to api.rseq to test that the event is
      raised.
      
      Adds handling to drmemtrace in the tracer and raw2trace.  For
      raw2trace we walk backward to undo the committing store that was
      recorded, since a real rseq abort would happen before the final store.
      I would like to add on offline trace rseq regression test, but it hits
      
      Issue; #2350, #4019, #4041
      Fixes #4019
      aebad5bd
    • Derek Bruening's avatar
      i#2989: Fix trace counter decrement assert · 9a0429e3
      Derek Bruening authored 4 years ago
      Fixes an assert when we start building a trace but then have to abort
      due to the private copy failing.
      
      There is still a long-term problem here with the private copy failure
      potentially happening over and over: that is covered by #4038.
      
      Issue: #2989, #4038
      
      Fixes #2989
      9a0429e3
0 Assignees
None
Assign to
0 Reviewers
None
Request review from
Labels
0
None
0
None
    Assign labels
  • Manage project labels

Milestone
No milestone
None
None
Time tracking
No estimate or time spent
Lock merge request
Unlocked
3
3 participants
Mark Otto
Administrator
Patrick H. Lauke
Reference:
Source branch: i4019-rseq-xfer-event

Menu

Explore Projects Groups Snippets