On Wed, 2017-03-29 at 16:51 +0200, Paolo Bonzini wrote: > On 28/03/2017 20:50, Bart Van Assche wrote: > > This means that just like the start and end of a discard must be aligned on a > > discard_granularity boundary, WRITE SAME commands with the UNMAP bit set must > > also respect that granularity. I think this means that either > > __blkdev_issue_zeroout() has to be modified such that it rejects unaligned > > REQ_OP_WRITE_ZEROES operations or that blk_bio_write_same_split() has to be > > modified such that it generates REQ_OP_WRITEs for the unaligned start and tail. > > I don't think this is the case. Hello Paolo, Can you cite the section(s) from the SCSI specs that support your view? I reread the "5.49 WRITE SAME (10) command" and "4.7.3.4.4 WRITE SAME command and unmap operations" sections but I have not found any explicit statement that specifies the behavior for unaligned WRITE SAME commands with the UNMAP bit set. It seems to me like the OPTIMAL UNMAP GRANULARITY parameter was overlooked when both sections were written. Should we ask the T10 committee for a clarification? Another question is, if the specification of WRITE SAME + UNMAP would be made unambiguous in the SBC document, whether or not we should take the risk to trigger behavior that is not what we expect by sending unaligned WRITE SAME + UNMAP commands to SCSI devices? Thanks, Bart.