diff options
author | Andrei Vagin <avagin@google.com> | 2019-07-15 19:26:16 -0700 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2019-07-15 19:27:18 -0700 |
commit | 6a8ff6daefc670455f40326afd53b51b632a32dc (patch) | |
tree | 3864c7e715c717c0efa4fd34293a40f2f3bef4fb /pkg/sentry | |
parent | 3d78baf06d32141fb1c9c136cc01e3e204309969 (diff) |
kvm: wake up all waiter of vCPU.state
Now we call FUTEX_WAKE with ^uintptr(0) of waiters, but in this case only one
waiter will be waked up. If we want to wake up all of them, the number of
waiters has to be set to math.MaxInt32.
PiperOrigin-RevId: 258285286
Diffstat (limited to 'pkg/sentry')
-rw-r--r-- | pkg/sentry/platform/kvm/machine_unsafe.go | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/pkg/sentry/platform/kvm/machine_unsafe.go b/pkg/sentry/platform/kvm/machine_unsafe.go index 8d76e106e..405e00292 100644 --- a/pkg/sentry/platform/kvm/machine_unsafe.go +++ b/pkg/sentry/platform/kvm/machine_unsafe.go @@ -21,6 +21,7 @@ package kvm import ( "fmt" + "math" "sync/atomic" "syscall" "unsafe" @@ -134,7 +135,7 @@ func (c *vCPU) notify() { syscall.SYS_FUTEX, uintptr(unsafe.Pointer(&c.state)), linux.FUTEX_WAKE|linux.FUTEX_PRIVATE_FLAG, - ^uintptr(0), // Number of waiters. + math.MaxInt32, // Number of waiters. 0, 0, 0) if errno != 0 { throw("futex wake error") |