mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-05 18:20:34 +00:00
This change helps to improve performance in plugin communications by removing unnecessary communication exchange. The existing protocol basically requires the plugin to send a request msg and wait for a reply msg. Prior to this change a plugin had to send a wait request before it got a wait reply (which typically contains an IO event notication). Similarly, when the plugin sends a resume request there's also a resume reply that's sent. The reply to the resume message serves no worthwhile purpose and can be removed. In the common case there's also no need for the plugin to send a wait request message--the prior operation was a resume so both sides know that the only next legal operation is a wait. Thereforce, crosvm can send a wait reply message without waiting for the plugin's request. Another way to look at the situation is that a resume request message is now answered by a wait reply message, and the overall message exchange pattern looks less like http and more like async I/O. The plugin's first call to wait is the one time that a wait request is sent. This in turn will receive an wait-init reply. TEST=Ran my diagnostic plugin and confirmed that it still passes (after working around an 8-byte limitation in crosvm). Run my benchmarking plugin and observed the time it takes to complete go down by 16.5%. BUG=None Change-Id: I9c93ba1d3a8f7814ca952f3dc7239d48675192e2 Signed-off-by: Matt Delco <delco@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1571066 Tested-by: kokoro <noreply+kokoro@google.com> Tested-by: Matt Delco <delco@google.com> Reviewed-by: Zach Reizner <zachr@chromium.org> |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
crosvm.h |