qemu-block
[Top][All Lists]
Advanced

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

Re: [PATCH for-5.0 v2 2/3] block: Increase BB.in_flight for coroutine in


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [PATCH for-5.0 v2 2/3] block: Increase BB.in_flight for coroutine interfaces
Date: Tue, 7 Apr 2020 12:10:30 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1

07.04.2020 11:52, Kevin Wolf wrote:
Am 07.04.2020 um 08:41 hat Vladimir Sementsov-Ogievskiy geschrieben:
06.04.2020 20:14, Kevin Wolf wrote:
External callers of blk_co_*() don't currently increase the
BlockBackend.in_flight counter, but calls from blk_aio_*() do, so there
is an inconsistency whether the counter has been increased or not.

This patch moves the actual operations to static functions that can
later know they will always be called with in_flight increased exactly
once, even for external callers using the blk_co_*() coroutine
interfaces.

If the public blk_co_*() interface is unused, remove it.

Signed-off-by: Kevin Wolf <address@hidden>


Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>

Still, did you consider instead just move inc/dec to _co_ functions, like
[...]
(and same for write, ioctl, flush, discard). It seems more
consistent.. Should it work?

No, it would be wrong because it would be too late. The main purpose of
blk_inc_in_flight() is to keep the request covered during the first and
the last phase outside of blk_co_*(), which can potentially involve BHs
like blk_aio_complete_bh().

Kevin


OK, thanks, I see now, we want to caver possible completion BH.
Hmm, not too late but too early (for decrement).. As nothing interesting
happening between increment in blk_aio_prwv and entering the coroutine with
_do_ function.

--
Best regards,
Vladimir



reply via email to

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