[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 1/4] util: Add thread-safe qemu_strerror() function
From: |
Alex Bennée |
Subject: |
Re: [PATCH v3 1/4] util: Add thread-safe qemu_strerror() function |
Date: |
Thu, 06 Apr 2023 09:57:07 +0100 |
User-agent: |
mu4e 1.10.0; emacs 29.0.60 |
Yohei Kojima <y-koj@outlook.jp> writes:
> On 2023/03/31 4:06, Markus Armbruster wrote:
>> Yohei Kojima <y-koj@outlook.jp> writes:
>>
>>> Add qemu_strerror() which follows the POSIX specification for
>>> strerror(). While strerror() is not guaranteed to be thread-safe, this
>>> function is thread-safe.
>>
>> Why not g_strerror()?
>>
>
> Because g_strerror() uses mutex in its implementation and there is a
> risk to occur the deadlock. If one thread enters g_strerror() (soon the
> mutex is locked), then another thread calls fork(), and the forked
> child process try to call g_strerror(), then deadlock occurs.
I think we should mention this avoids the deadlock in the commit
message. With that:
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
>
>>> This function is added to solve the following issue:
>>> https://gitlab.com/qemu-project/qemu/-/issues/416
>>
>> The issue even asks for it...
>>
>
> Originally yes, but Daniel told the deadlock (or a mutex starvation)
> risk for g_strerror() in the later discussion of the issue. Probably I
> should have mention that in the commit message or the cover letter.
>
>>> Signed-off-by: Yohei Kojima <y-koj@outlook.jp>
>>
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
- Re: [PATCH v3 1/4] util: Add thread-safe qemu_strerror() function,
Alex Bennée <=