Message ID | 20221109025941.1594612-1-shinichiro.kawasaki@wdc.com (mailing list archive) |
---|---|
Headers | show |
Series | scsi: sd: use READ/WRITE/SYNC (16) commands per ZBC | expand |
What is the point in relaxing this? Every modern device better support 16 byte commands even if they aren't strictly required for host aware devices.
On Nov 09, 2022 / 04:36, Christoph Hellwig wrote: > What is the point in relaxing this? Every modern device better support > 16 byte commands even if they aren't strictly required for host aware > devices. My point was to make the check strictly follow the ZBC spec. But now I see that it's the better to keep enforcing 16 byte commands to host-aware devices. I will drop the first patch and revise the second patch to enforce SYNC 16 on both host-aware and host-managed devices.
On Thu, Nov 10, 2022 at 02:20:09AM +0000, Shinichiro Kawasaki wrote: > My point was to make the check strictly follow the ZBC spec. But now I see that > it's the better to keep enforcing 16 byte commands to host-aware devices. I will > drop the first patch and revise the second patch to enforce SYNC 16 on both > host-aware and host-managed devices. We don't "enforce" anything. We just don't send the legacy commands for devices that are guaranteed to be modern. What is the advantage of ever sending 10 bytes commands (inluding SYNCHRONIZE CACHE) to a modern device?
On 11/10/22 17:19, hch@infradead.org wrote: > On Thu, Nov 10, 2022 at 02:20:09AM +0000, Shinichiro Kawasaki wrote: >> My point was to make the check strictly follow the ZBC spec. But now I see that >> it's the better to keep enforcing 16 byte commands to host-aware devices. I will >> drop the first patch and revise the second patch to enforce SYNC 16 on both >> host-aware and host-managed devices. > > We don't "enforce" anything. We just don't send the legacy commands for > devices that are guaranteed to be modern. What is the advantage of > ever sending 10 bytes commands (inluding SYNCHRONIZE CACHE) to a modern > device? The ZBC specs define SYNC 16 as optional while SYNC 10 is mandatory. So the device may not support SYNC 16 and we would get an invalid opcode error. For SYNC, no advantages between SYNC 10 and SYNC 16. Not even sure why they both exist. The point here is making sure we use the one that the drive MUST support. That is, SYNC 16 for host managed and SYNC 10 for host aware (but these likely all also support SYNC 16, but we cannot be sure of it).
On Nov 10, 2022 / 17:31, Damien Le Moal wrote: > On 11/10/22 17:19, hch@infradead.org wrote: > > On Thu, Nov 10, 2022 at 02:20:09AM +0000, Shinichiro Kawasaki wrote: > >> My point was to make the check strictly follow the ZBC spec. But now I see that > >> it's the better to keep enforcing 16 byte commands to host-aware devices. I will > >> drop the first patch and revise the second patch to enforce SYNC 16 on both > >> host-aware and host-managed devices. > > > > We don't "enforce" anything. We just don't send the legacy commands for > > devices that are guaranteed to be modern. I see, the word "enforce" was not a good choice. Will rephrase it in v3. > > What is the advantage of > > ever sending 10 bytes commands (inluding SYNCHRONIZE CACHE) to a modern > > device? > > The ZBC specs define SYNC 16 as optional while SYNC 10 is mandatory. So > the device may not support SYNC 16 and we would get an invalid opcode > error. For SYNC, no advantages between SYNC 10 and SYNC 16. Not even > sure why they both exist. The point here is making sure we use the one > that the drive MUST support. That is, SYNC 16 for host managed and SYNC > 10 for host aware (but these likely all also support SYNC 16, but we > cannot be sure of it). Damien, thanks for the explanation. I think Christoph, Damien and I are on the same page: we should call 16 byte WRITE/READ/SYNC commands to modern devices. And both host-managed and host-aware ZBC devices are the modern devices. Will prepare v3 based on this understanding.