|
From: | Vladimir Sementsov-Ogievskiy |
Subject: | Re: [PATCH] nbd/server: Advertise MULTI_CONN for shared writable exports |
Date: | Fri, 27 Aug 2021 19:58:10 +0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 |
27.08.2021 18:09, Eric Blake wrote:
According to the NBD spec, a server advertising NBD_FLAG_CAN_MULTI_CONN promises that multiple client connections will not see any cache inconsistencies: when properly separated by a single flush, actions performed by one client will be visible to another client, regardless of which client did the flush. We satisfy these conditions in qemu because our block layer serializes any overlapping operations (see bdrv_find_conflicting_request and friends)
Not any. We serialize only write operations not aligned to request_alignment of bs (see bdrv_make_request_serialising() call in bdrv_co_pwritev_part). So, actually most of overlapping operations remain overlapping. And that's correct: it's not a Qemu work to resolve overlapping requests. We resolve them only when we are responsible for appearing of intersection: when we align requests up. -- Best regards, Vladimir
[Prev in Thread] | Current Thread | [Next in Thread] |