Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

i#2558: relax client reachability and vmm base location #2565

Merged
merged 5 commits into from
Jul 25, 2017

Conversation

derekbruening
Copy link
Contributor

Adds a new option -reachable_client, on by default. When turned off,
client libraries being within 32-bit-displacement reachability of the code
cache is relaxed, both the library load location and the fatal error on
violation. This is particularly useful for statically-linked clients whose
location is difficult to change.

Includes changes to vmm allocation required to make this work for
statically-linked clients:

  • Eliminates the setting of heap reachability constraints prior to vmm
    allocation, except for -heap_in_lower_4GB which has no fallback.
  • Client libraries are now loaded after the vmm is allocated.
  • -vm_base_near_app tries to be near the app but on failure, if
    -vm_allow_not_at_base, it allows allocating away from the app.
  • When reserving any available memory, on UNIX, we take from the high end,
    for a lower chance of impacting the brk.

Adds a test of a static client with a large heap where the default -vm_base
or being near the app fail.

Fixes #2558

Adds a new option -reachable_client, on by default.  When turned off,
client libraries being within 32-bit-displacement reachability of the code
cache is relaxed, both the library load location and the fatal error on
violation.  This is particularly useful for statically-linked clients whose
location is difficult to change.

Includes changes to vmm allocation required to make this work for
statically-linked clients:
+ Eliminates the setting of heap reachability constraints prior to vmm
  allocation, except for -heap_in_lower_4GB which has no fallback.
+ Client libraries are now loaded *after* the vmm is allocated.
+ -vm_base_near_app tries to be near the app but on failure, if
  -vm_allow_not_at_base, it allows allocating away from the app.
+ When reserving any available memory, on UNIX, we take from the high end,
  for a lower chance of impacting the brk.

Adds a test of a static client with a large heap where the default -vm_base
or being near the app fail.

Fixes #2558
@derekbruening
Copy link
Contributor Author

run aarch64 tests

@derekbruening derekbruening merged commit 388fa09 into master Jul 25, 2017
@derekbruening derekbruening deleted the i2558-static-reachability branch July 25, 2017 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant