Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upProfiler for blocked IpcReceiver::recv() #20132
Conversation
highfive
commented
Feb 27, 2018
|
Thanks for the pull request, and welcome! The Servo team is excited to review your changes, and you should hear from @metajack (or someone else) soon. |
highfive
commented
Feb 27, 2018
|
Heads up! This PR modifies the following files:
|
highfive
commented
Feb 27, 2018
|
Yes, replacing all the users would be really useful! |
89b183d
to
1c16ec2
|
@jdm - I've gone ahead and replaced calls to |
|
Ping @jdm |
|
From my point of view, the more we use this API, the more confident we can be that we're actually noticing the biggest offenders. That being said, if you would prefer to merge the changes that you've made so far, we can also continue changing other channels in followup PRs. |
|
@jdm - if you have suggestions or guidelines for components that I should check for, I can go in and change those. Otherwise, for now, I'd prefer to merge this. |
|
@nakul02 What if we used |
|
Also, I bet we could write a test for this functionality in https://github.com/servo/servo/blob/master/tests/unit/profile/time.rs. Something like:
|
|
@jdm - I've added a test, but can't figure out why its failing for the life of me. This is the output from its failure:
In this PR, there is a new enum type in the |
|
These changes look great! |
| assert_eq!(val_profile_receiver, 43); | ||
|
|
||
| let (sender, receiver) = ipc::channel().unwrap(); | ||
| thread::spawn(move || { |
This comment has been minimized.
This comment has been minimized.
|
Hmm. Unfortunately, this is probably hitting a know bug in ipc-channel that we haven't been able to track down yet. Is there any change if you clone the channel before passing it as an argument? |
|
Ping @jdm |
|
There are many more updates to Cargo.lock than this change requires. Did you run |
|
Apart from the Cargo.lock changes, this looks great! |
|
|
|
Thanks @jdm! |
|
@bors-servo r+ |
|
|
Profiler for blocked IpcReceiver::recv() <!-- Please describe your changes on the following line: --> Implements feature #19223 --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #19223 (github issue number if applicable). <!-- Either: --> - [x] There are tests for these changes <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> WIP. @jdm - this is the new profiler : "Blocked at IPC Receive" Should I dig through all the calls to `ipc::channel` and replace them with this profiled `IpcReceiver`?  <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20132) <!-- Reviewable:end -->
|
@bors-servo r+ |
|
|
|
@jdm - is there a way to just cause |
Profiler for blocked IpcReceiver::recv() <!-- Please describe your changes on the following line: --> Implements feature #19223 --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #19223 (github issue number if applicable). <!-- Either: --> - [x] There are tests for these changes <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> WIP. @jdm - this is the new profiler : "Blocked at IPC Receive" Should I dig through all the calls to `ipc::channel` and replace them with this profiled `IpcReceiver`?  <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20132) <!-- Reviewable:end -->
|
|
nakul02 commentedFeb 27, 2018
•
edited
Implements feature #19223
./mach build -ddoes not report any errors./mach test-tidydoes not report any errorsWIP.
@jdm - this is the new profiler : "Blocked at IPC Receive"
Should I dig through all the calls to
ipc::channeland replace them with this profiledIpcReceiver?This change is