On Tue, 7 Jan 2025, John Garry wrote: > On 07/01/2025 17:13, Mikulas Patocka wrote: > > On Mon, 6 Jan 2025, John Garry wrote: > > > > BTW. could it be possible to add dm-mirror support as well? dm-mirror is > > used when the user moves the logical volume to another physical volume, so > > it would be nice if this worked without resulting in not-supported errors. > > > > dm-mirror uses dm-io to perform the writes on multiple mirror legs (see > > the function do_write() -> dm_io()), I looked at the code and it seems > > that the support for atomic writes in dm-mirror and dm-io would be > > straightforward. > > FWIW, we do support atomic writes for md raid1. The key principle is that we > atomically write to each disk. Obviously we cannot write to multiple disks > atomically. So the copies in each mirror may be out-of-sync after an > unexpected power fail, but that is ok as either will have all of old or new > data, which is what we guarantee. Yes - something like that can be implemented for dm-mirror too. > > Another possibility would be dm-snapshot support, assuming that the atomic > > i/o size <= snapshot chunk size, the support should be easy - i.e. just > > pass the flag REQ_ATOMIC through. Perhaps it could be supported for > > dm-thin as well. > > Do you think that there will be users for these? > > atomic writes provide guarantees for users, and it would be hard to detect > when these guarantees become broken through software bugs. I would be just > concerned that we enable atomic writes for many of these more complicated > personalities, and they are not actively used and break. > > Thanks, > John dm-snapshot is not much used, but dm-thin is. I added Joe to the recipients list, so that he can decide whether dm-thin should support atomic writes or not. Mikulas