(added Mike, Ben, and dm-devel) On Fri, 2024-04-19 at 08:20 +0200, Christoph Hellwig wrote: > On Thu, Apr 18, 2024 at 06:46:06PM +0200, Martin Wilck wrote: > > > Why would we? It makes absolutly no sense to inherit these > > > limits, > > > the lower device will split anyway which is very much the point > > > of > > > the immutable bio_vec work. > > > > > > > Sorry, I don't follow. With (request-based) dm-multipath on top of > > SCSI, we hit the "over max size limit" condition in > > blk_insert_cloned_request() [1], which will cause IO to fail at the > > dm > > level. So at least in this configuration, it's crucial that the > > upper > > device inherit the lower device's limits. > > Oh, indeed. Request based multipath is different from everyone else. > I really wish we could spend the effort to convert it to bio based > and remove this special case.. > Well, it's just a matter of setting "queue_mode" in the multipath configuration. But request-based has been the default since kernel v3.0 (f40c67f0f7e2 ("dm mpath: change to be request based")). While we got bio-based dm-multipath back in v4.8 (76e33fe4e2c4 ("dm mpath: reinstate bio-based support")), making it the default or even removing request-based dm (in order to free the block layer from limit- stacking requirements) will obviously require a broad discussion. Mike has pointed out in 76e33fe4e2c4 that many of the original reasons for introducing request-based dm-multipath have been obsoleted by faster hardware and improvements in the generic block layer. I am open for discussion on this subject, but with my distribution maintainer hat on, I don't expect the default being changed for end customers soon. Actually, with NVMe rising, I wonder if a major technology switch for dm-multipath (which is effectively SCSI multipath these days) makes sense at this point in time. Thanks, Martin