On 23/01/14 11:29, Kevin Wolf wrote: > Am 22.01.2014 um 21:30 hat Christian Borntraeger geschrieben: >> On 17/01/14 15:14, Kevin Wolf wrote: >>> This patch series adds code to the block layer that allows performing >>> I/O requests in smaller granularities than required by the host backend >>> (most importantly, O_DIRECT restrictions). It achieves this for reads >>> by rounding the request to host-side block boundary, and for writes by >>> performing a read-modify-write cycle (and serialising requests >>> touching the same block so that the RMW doesn't write back stale data). >> >> Nice, this might really help on s390 (also for KVM) since dasd disks usually >> have a 4k sector size. We also have flash systems with 4k block size. Both >> disk systems cause lots of trouble with cache=none and friends. > > Can't you configure guests to use 4k sector size as well? With these > patches, it should work, but there is an obvious performance penalty, so > you want the guest to make as little use of it as possible.
Yes, thats what we do now, but it requires a command line parameter. A year ago or so we posted patches for block size detection (as well as geometry pass through) but the necessary rework after feedback is still pending (this got lost in a bunch of other todos, but we will restart that) > For PCs, it's essentially just the boot process that needs 512 byte > accesses because that's the BIOS interface, and the OS generally won't > send misaligned requests later. > > What's the situation on s390? Yes, its mostly the boot process. But there is also a problem if you have an image file on file system that is on a 4k disk. Then the guest might send non-aligned request IIRC. > >> Do you have a tree with these patches, so that I can test those on s390? > > Sure, and any testing is appreciated: > > git://repo.or.cz/qemu/kevin.git align > > Kevin >