qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/8] futex: Check value after qemu_futex_wait()


From: Akihiko Odaki
Subject: Re: [PATCH 1/8] futex: Check value after qemu_futex_wait()
Date: Sun, 29 Dec 2024 14:55:48 +0900
User-agent: Mozilla Thunderbird

On 2024/12/28 20:11, Phil Dennis-Jordan wrote:
This is somewhat orthogonal to the issue being addressed here, but:
While reading the man page to make sense of this patch, I noticed the following:

 > If the futex value does not match val, then the call fails
 >              immediately with the error EAGAIN.

And qemu_futex_wait does not seem to handle that case. In fact it seems like it would take the default: abort(); code path?

It's handled as EWOULDBLOCK. The man page says:
> Note: on Linux, the symbolic names EAGAIN and EWOULDBLOCK (both of
> which appear in different parts of the kernel futex code) have the
> same value.


If I've got this right, I'm surprised there aren't spurious abort()s happening, but I suppose QemuEvent and qemu_futex_* are used fairly sparingly and in low-contention areas.

QemuLockCnt, which relies on qemu_futex_*, is used in more contended areas so it will cause trouble if qemu_futex_* is broken.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]