On Fri, 18 Apr 2025, Damien Le Moal wrote: > > It seems that you want to send many small overlapping write bios - the > > question is why? Why can't the application accumulate the content and send > > it as one big bio? > > That is the application problem. On HDDs at least, small IOs will hurt > performance. SMR or not, same problem. Intellignet applications will try to > shape their workload to optimize performance. But that point is irrelevant here. > The kernel porvides a service: process write requests, regardless of how big > these requests are, if they are correct (i.e. for zoned devices, they must be > issued in order by the user), we must correctly execute the writes. > > > I'm a bit worried that supporting this ordering will just bloat the kernel > > with marginal benefit. > > Bloat ? We would need three states instead of two: normal, suspended, resuming (so it would bloat all the device mapper logic with another state). There's dm_wq_work using submit_bio_noacct, which wouldn't work, as it would immediatelly enqueue the bio for suspend again, so we would need some other path to submit the bio. dm_wq_work would have to transition the device from the "resuming" state to the "normal" state when it processes all the bios, but it is called for various other reasons too. > everything is already in place to preserve the order of write operations > to zoned devices, since a long time ago. What if the controller doesn't preserve the order of writes? I think that there was some bit for that, but I forgot its name. So we can simply not set the bit for device mapper - and the applications will have to deal with it by using write plugging. > What has not been covered are cases > like suspend/resume which may, depending on what they do, break the ordering > guarantees that we have for write requests. The only reason this has not been > fixed is because I completely overlooked these cases as zoned block devices were > in the past mostly used in enterprise systems where suspend/resume is not really > used at all. But we have zoned UFS devices these days (smart phones), so > properly supporting DM suspend/resume is important I think. Do you mean zoned flash devices? I've never heard of them. Mikulas