Christoph Hellwig <hch@xxxxxxxxxxxxx> writes: > On Mon, Jul 10, 2023 at 05:27:23PM +0800, Ming Lei wrote: >> Yes, that is exactly what we are doing. >> >> The added macros of UBLK_IO_OP_DRV_IN_START[END] are just for supporting >> more ublk passthrough commands, and the motivation is for running >> check(such as buffer direction) in two sides easily. >> >> However, I think it is just fine to delay to add it until introducing >> the 2nd ublk pt command. > > The concept of a passthrough command just doesn't make sense for an > on the wire protocol. It is a linux concept that distinguished between > the Linux synthetic command like REQ_OP_READ/WRITE/DISCARD etc that are > well defined and can be used by file systems and other consumers, and > ways to pass through arbitrary blobs only known by the driver. Yet most on-the-wire protocols for actual hardware does support this some way or another. But I agree that for ublk it is probably not needed. It would probably be easier to talk to the ublk daemon through other means than passthrough in the block layer. > > Anything in a wire protocol needs to be very well defined in that > protocol completely indpendent of what Linux concept it maps to. > Especially as the Linux concepts can change, and fairly frequently do. I somewhat agree in the sense that for consistency, we should either move zone management commands to the DRV_OUT range OR move report_zones out of this special range and just next to the zone management operations. I like the latter option better, and I would love to see the block layer do the same at some point. It feels backwards that report_zones get special treatment all over the place. Best regards, Andreas