On 10/12/2014 16:47, Ming Lei wrote: > > > Finally blkdev_issue_zeroout() can send WRITE SAME(10/16) directly > > > and it can be from user space, fs, and block drivers. > > > > That is WRITE SAME without UNMAP, it is not used by mkfs, and Linux has > > always honored max_write_same_blocks for it (defaulting to a 65535 block > > limit for older devices that did not report a limit). > > From QEMU view, blk_aio_write_zeroes() still need to handle > case without UNMAP, and the default 65535 is just linux's current > implementation, and even the recent patch tries to increase > the default setting. Also the default limit might be bigger on other OS.
What is "another OS" that produces WRITE SAME with >2GB of data? http://blogs.vmware.com/vsphere/2012/06/low-level-vaai-behaviour.html#more-3129 says ESX's default write same size is 1MB (2048 blocks). Windows does not use WRITE SAME at all, according to Microsoft at http://msdn.microsoft.com/en-us/library/windows/hardware/dn265487%28v=vs.85%29.aspx. 65535 is a sensible default for a host that doesn't know about max_write_same_sectors. Anything else would break physical drives as well. Please produce a concrete case that is broken, with a released OS. Paolo > > So what *concrete* case would be fixed by adding extra little-used code > > in QEMU to do the split?