Auto merge of #20132 - nakul02:issue_19223, r=jdm

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`?

![screenshot from 2018-02-27 01-35-37](https://user-images.githubusercontent.com/5394361/36721061-b46edea4-1b5e-11e8-91d6-7faba742f237.png)

<!-- 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 -->
This commit is contained in:
bors-servo 2018-03-22 16:38:32 -04:00 committed by GitHub
commit f467bdce1b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
27 changed files with 176 additions and 58 deletions

2
Cargo.lock generated
View file

@ -2258,12 +2258,14 @@ dependencies = [
"profile 0.0.1",
"profile_traits 0.0.1",
"servo_allocator 0.0.1",
"servo_config 0.0.1",
]
[[package]]
name = "profile_traits"
version = "0.0.1"
dependencies = [
"bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"energy-monitor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"energymon 0.3.0 (git+https://github.com/energymon/energymon-rust.git)",
"ipc-channel 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",