It seems ok in principle - we would just need to ensure that it is watertight.
We currently use chunk_sectors for quite some different things, most notably zones boundaries, NIOIB, raid stripes etc.
So I don't have an issue adding another use-case for it.
Which is what I said; we need to check. And I would treat a NOIOB value not aligned to the atomic write boundary as an error.Q2: If we don't, shouldn't we align the atomic write boundary to the chunk_sectors setting to ensure both match up?
Yeah, right. But we can only handle what HW tells.
The atomic write boundary is only relevant to NVMe. NVMe NOIOB - which we use to set chunk_sectors - is an IO optimization hint, AFAIK. However the atomic write boundary is a hard limit. So if NOIOB is not aligned with the atomic write boundary - which seems unlikely - then the atomic write boundary takes priority.
But the real issue here is that the atomic write boundary only matters
for requests, and not for the entire queue.
So using chunk_sectors is out of question as this would affect all requests, and my comment was actually wrong.
I'll retract it.