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

i#3570 large vmcode: Load clients inside 1G vmcode on UNIX

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Derek Bruening requested to merge i3570-client-in-vmm into master May 09, 2019
  • Overview 1
  • Commits 3
  • Pipelines 0
  • Changes 14

Adds new VMM capabilities to reserve memory at a specific address for a file mapping and uses it to load client libs and anything else that requires reachability inside the vmcode region.

Fixes two unmap failures which now show up as memory leaks with the VMM managing the space:

  • The inter-segment gaps were not being unmapped.
  • The .bss separation page was not being unmapped.

Makes -vm_size, the size of the vmcode region, 1G by default on UNIX. We do not go all the way to 2G because that causes -vm_base_near_app to always fail, which results in always having to mangle rip-relative accesses and corresponding increased overhead.

Leaves Windows vmcode size and library location unchanged, due to complexities in placing file mappings inside the region (see the issue for details).

Increases -vmheap_size to 2G as well while at it, for all platforms.

Tweaks the client.alloc test options to work with larger vmcode sizes.

Disables -reachable_client guarantees for static DR and documents this. Such guarantees are impossible with a 2G vmcode, and difficult even with 1G or smaller.

Fixes a bug where reachable bounds were not reset on detach.

Issue: #3570

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: i3570-client-in-vmm