-
Notifications
You must be signed in to change notification settings - Fork 3
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
memory locking on mac! #7373
base: dev
Are you sure you want to change the base?
memory locking on mac! #7373
Conversation
d250edf
to
d2add53
Compare
Is there a link to some data of this PR vs dev? Seems like the only data so far is a screenshot in the protocol channel. I suggest do rigorous test/experiment, and post more data in the PR description. (As I mentioned in #7011) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is the patch file still needed?
I will do this over the weekend and post images! yeet |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we solve the TODOs?
2cdcdcd
to
1a1de01
Compare
65bdeb7
to
72a940d
Compare
Codecov Report
@@ Coverage Diff @@
## dev #7373 +/- ##
==========================================
+ Coverage 56.13% 57.38% +1.25%
==========================================
Files 158 106 -52
Lines 32519 26947 -5572
==========================================
- Hits 18255 15464 -2791
+ Misses 14010 11483 -2527
+ Partials 254 0 -254
Continue to review full report at Codecov.
|
fc8adb5
to
4ebb8c5
Compare
71e2b0b
to
29af4ec
Compare
Protocol End-to-End Streaming Test ResultsExperiments SummaryExpand Summary✅ Experiment 1 - Bandwidth: Unbounded, Delay: None, Packet Drops: None, Queue limit: default. Download logs: aws s3 cp s3://whist-e2e-protocol-test-logs/serina/mimalloc/2022_11_21@19-43-12/ 2022_11_21@19-43-12/ --recursive ✅ Experiment 2 - Bandwidth: variable between 15Mbit and 30Mbit, Delay: 10 ms, Packet Drops: None, Queue Limit: None, Conditions change over time? Yes, frequency is variable between 1000 ms and 2000 ms. Download logs: aws s3 cp s3://whist-e2e-protocol-test-logs/serina/mimalloc/2022_11_21@19-49-30/ 2022_11_21@19-49-30/ --recursive ✅ Experiment 3 - Bandwidth: variable between 10Mbit and 20Mbit, Delay: 10 ms, Packet Drops: None, Queue Limit: None, Conditions change over time? Yes, frequency is variable between 500 ms and 2000 ms. Download logs: aws s3 cp s3://whist-e2e-protocol-test-logs/serina/mimalloc/2022_11_21@20-07-55/ 2022_11_21@20-07-55/ --recursive ✅ Experiment 4 - Bandwidth: 10Mbit, Delay: 10 ms, Packet Drops: None, Queue Limit: 100 packets, Conditions change over time? No.. Download logs: aws s3 cp s3://whist-e2e-protocol-test-logs/serina/mimalloc/2022_11_21@20-12-11/ 2022_11_21@20-12-11/ --recursive Full Results: link here |
Ticket(s) Closed
Description
This PR adds code to use patched mimalloc as a substitute for system malloc, so we can mlock our allocations.
It also includes a function to mlock statics, which is ad-hoc and requires more testing/possibly a better method. I am extremely open to suggestions.
See https://www.notion.so/whisthq/Mimalloc-and-mlock-Implementation-c2e7d80ce8dc406981928bd0e4560b89.
Implementation
Documentation & Tests Added
Testing Instructions
Pull whisthq/mimalloc, check out the
serina/mlock_error
branch, and build that using the building instructions. Copy the mimalloc.o file to thebuild/lib/etc/mimalloc/etc folder
on the protocol sideOn the protocol side:
-D USE_MIMALLOC=ON
MLOCK_LOG
in the mimalloc side; you can also check that Whist's memory usage is higher than dev Whistdebug_flags.h
log_statistics.h
and change other settings as you wishplotter.py
Serina's ABABABAB test (suggested by Yancey)
with mlock:
dev:
with mlock:
dev:
with mlock:
dev:
with mlock:
dev:
PR Checklist