Re: [PATCH 21/21] nvme: Support atomic writes
From: Pankaj Raghav
Date: Thu Oct 05 2023 - 12:39:37 EST
>>> + blk_queue_atomic_write_max_bytes(disk->queue, atomic_bs);
>>> + blk_queue_atomic_write_unit_min_sectors(disk->queue, 1);
>>> + blk_queue_atomic_write_unit_max_sectors(disk->queue,
>>> + atomic_bs / bs);
>> blk_queue_atomic_write_unit_[min| max]_sectors expects sectors (512 bytes unit)
>> as input but no conversion is done here from device logical block size
>> to SECTORs.
>
> Yeah, you are right. I think that we can just use:
>
> blk_queue_atomic_write_unit_max_sectors(disk->queue,
> atomic_bs >> SECTOR_SHIFT);
>
Makes sense.
I still don't grok the difference between max_bytes and unit_max_sectors here.
(Maybe NVMe spec does not differentiate it?)
I assume min_sectors should be as follows instead of setting it to 1 (512 bytes)?
blk_queue_atomic_write_unit_min_sectors(disk->queue, bs >> SECTORS_SHIFT);
> Thanks,
> John
>
>>> + blk_queue_atomic_write_boundary_bytes(disk->queue, boundary);
>>> + } else {
>>> + dev_err(ns->ctrl->device, "Unsupported atomic boundary=0x%x\n",
>>> + boundary);
>>> + }
>>>
>