On Tue, Jan 16, 2024 at 11:35:47AM +0000, John Garry wrote:
As such, we then need to set atomic write unit max = min(queue max
segments, BIO_MAX_VECS) * LBS. That would mean atomic write unit max 256 *
512 = 128K (for 512B LBS). For a DMA controller of max segments 64, for
example, then we would have 32K. These seem too low.
I don't see how this would work if support multiple sectors.
Alternative I'm thinking that we should just limit to 1x iovec always, and
then atomic write unit max = (min(queue max segments, BIO_MAX_VECS) - 1) *
PAGE_SIZE [ignoring first/last iovec contents]. It also makes support for
non-enterprise NVMe drives more straightforward. If someone wants, they can
introduce support for multi-iovec later, but it would prob require some
more iovec length/alignment rules.
Supporting just a single iovec initially is fine with me, as extending
that is pretty easy. Just talk to your potential users that they can
live with it.
I'd probably still advertise the limits even if it currently always is 1.