Re: [gentoo-dev] dm-crypt reordering BIOs across barriers?

From: Richard Yao
Date: Sat Jun 08 2013 - 05:18:02 EST

On 06/08/2013 02:11 AM, Sergei Trofimovich wrote:
> On Fri, 07 Jun 2013 23:47:33 -0400
> Richard Yao <ryao@xxxxxxxxxx> wrote:
>> When you use dm-crypt, block IO requests to a dm-* device will invoke
>> dm_request_fn() -> map_request() -> crypt_map(). If a BIO is a write
>> barrier, crypt_map() will return DM_MAPIO_REMAPPED to map_request(),
>> which will immediately queue it to the device.
>> If a few dozen IOs are queued in rapid succession with multiple write
>> barriers, all write barriers will be executed before any actual write
>> BIOs occur because the write IOs will be processed asynchronously in a
>> work queue. Since the barriers will be long gone by the time the write
>> IOs are queued, they can be queued in any order.
>> Am I misunderstanding this or is dm-crypt ignoring proper write barrier
>> semantics?

It might be worth stating that I thought flush was a synonym for
barrier. It still looks like there is an issue, despite my incorrect

Attachment: signature.asc
Description: OpenPGP digital signature