diff options
author | Daniel Verkamp <dverkamp@chromium.org> | 2018-09-18 14:59:13 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-09-19 15:40:06 -0700 |
commit | 713dd60491f35bdab6417663f80c3fddc0e6f205 (patch) | |
tree | a472c00ee24246bee2377a0d2052564bbfb7c957 /devices | |
parent | 616a093d9197cbca23d3fa585520c674e19d917a (diff) | |
download | crosvm-713dd60491f35bdab6417663f80c3fddc0e6f205.tar crosvm-713dd60491f35bdab6417663f80c3fddc0e6f205.tar.gz crosvm-713dd60491f35bdab6417663f80c3fddc0e6f205.tar.bz2 crosvm-713dd60491f35bdab6417663f80c3fddc0e6f205.tar.lz crosvm-713dd60491f35bdab6417663f80c3fddc0e6f205.tar.xz crosvm-713dd60491f35bdab6417663f80c3fddc0e6f205.tar.zst crosvm-713dd60491f35bdab6417663f80c3fddc0e6f205.zip |
devices: block: clear flush timer once it fires
Otherwise, the flush timer case of the PollContext continues to fire repeatedly, since the timerfd remains readable. BUG=None TEST=Verify that crosvm virtio_blk thread no longer pins the CPU after writes are done Change-Id: I693346c078e07b97e30083f34d00be75fa93841d Signed-off-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1232295 Reviewed-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Dylan Reid <dgreid@chromium.org>
Diffstat (limited to 'devices')
-rw-r--r-- | devices/src/virtio/block.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/devices/src/virtio/block.rs b/devices/src/virtio/block.rs index e0784cc..43e81e0 100644 --- a/devices/src/virtio/block.rs +++ b/devices/src/virtio/block.rs @@ -535,6 +535,10 @@ impl<T: DiskFile> Worker<T> { error!("Failed to flush the disk: {:?}", e); break 'poll; } + if let Err(e) = flush_timer.wait() { + error!("Failed to clear flush timer: {:?}", e); + break 'poll; + } } Token::QueueAvailable => { if let Err(e) = queue_evt.read() { |