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

i#4665: Fix crash after IBT resize on AArch64

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Abhinav Anil Sharma requested to merge i4665-ibt-resize-crash into master Jan 29, 2021
  • Overview 63
  • Commits 13
  • Pipelines 0
  • Changes 4

Adds missing store for next_tag and last_exit linkstub in target_delete_entry IBL gencode, which is invoked after IBT resize on ARM32 and AArch64. After IBT resize, the IBT payloads are replaced with the target_delete_entry gencode address to induce a cache exit, and safely nullify the table.

Sets last_exit to &linkstub_ibt_deleted in target_delete_entry. This is to allow stats collection for the count of fcache exits where the indirect branch target was deleted but also a hit in IBL.

Removes the -shared_ibt_table_bb_init workaround for ibl-stress test on AArch64, which was required to avoid the buggy IBT resize.

Verified locally that the ibl-stress-aarch64-far-link_LONG test also works without the workaround after this fix. Manual local verification was required as this long test is not enabled in the regular suite.

Also fixes some bugs on this path in ARM. Sets the Thumb LSB bit for the target_delete entry targets stored in IBL entries. Avoids redoing insert_mode_change_handling for the target_delete_entry path.

Fixes: #4665 (closed)

Co-authored-by: Derek Bruening [email protected]

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: i4665-ibt-resize-crash