summary refs log tree commit diff
path: root/seccomp
diff options
context:
space:
mode:
authorChirantan Ekbote <chirantan@chromium.org>2019-11-15 14:25:36 +0900
committerCommit Bot <commit-bot@chromium.org>2019-11-22 05:54:03 +0000
commit6576091e5623bb64af7076672b4ec4e42923ef3c (patch)
treeddaaeabb0e3359cd8536270939520b71c2c25b8a /seccomp
parent220605a5fd03d7181d55b59d6bd147c86a4c8bc0 (diff)
downloadcrosvm-6576091e5623bb64af7076672b4ec4e42923ef3c.tar
crosvm-6576091e5623bb64af7076672b4ec4e42923ef3c.tar.gz
crosvm-6576091e5623bb64af7076672b4ec4e42923ef3c.tar.bz2
crosvm-6576091e5623bb64af7076672b4ec4e42923ef3c.tar.lz
crosvm-6576091e5623bb64af7076672b4ec4e42923ef3c.tar.xz
crosvm-6576091e5623bb64af7076672b4ec4e42923ef3c.tar.zst
crosvm-6576091e5623bb64af7076672b4ec4e42923ef3c.zip
devices: fs: Only resample interrupts on one thread
Having more than one thread watch the interrupt resample event meant
that the threads would race to acknowledge the event: if thread B called
epoll_wait after thread A got a readable event for the resample eventfd
but before thread A called `read()` on the eventfd, then thread B would
also get a readable event for that eventfd. Both threads would then
attempt to acknowledge the event but only one would succeed. This would
leave the other thread blocked on the `read()` call until the resample
event became readable again.

Fix this by having only one worker watch the resample event.

BUG=b:136128319
TEST=`tast run vm.Virtiofs` on kevin

Change-Id: I5cd781a9c79ac718207a944433ea20a967735237
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1923568
Tested-by: Chirantan Ekbote <chirantan@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Chirantan Ekbote <chirantan@chromium.org>
Reviewed-by: Stephen Barber <smbarber@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Diffstat (limited to 'seccomp')
0 files changed, 0 insertions, 0 deletions