Paolo Bonzini <pbonz...@redhat.com> writes: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > > > On 01/06/2015 12:34, Dmitry Monakhov wrote: >> Yes. Improvement is not huge, but it can be detected for old qemu >> unpatched kernel: 728 MiB/sec ± 20Mb patched kernel : 748 MiB/sec >> ± 10Mb > > Ok, so about 3-4%. What does the blktrace look like with a patched > kernel, and what is the performance with old QEMU? new qemu looks perfect 259,0 31 62 0.711100207 10768 D WS 29364992 + 256 [qemu-io] 259,0 31 63 0.711128098 10768 Q WS 29365248 + 256 [qemu-io] 259,0 31 64 0.711128509 10768 G WS 29365248 + 256 [qemu-io] 259,0 31 65 0.711130463 10768 D WS 29365248 + 256 [qemu-io] 259,0 31 66 0.711134222 10768 C WS 29364480 + 256 [0] 259,0 31 67 0.711158858 10768 Q WS 29365504 + 256 [qemu-io] 259,0 31 68 0.711159226 10768 G WS 29365504 + 256 [qemu-io] 259,0 31 69 0.711161104 10768 D WS 29365504 + 256 [qemu-io] 259,0 31 70 0.711171863 10768 C WS 29364736 + 256 [0]
old qemu on patched kernel stil issues two bios Max_sz-1page + 1page, such bios are not merged and completed separately 259,0 31 385 0.719283423 10729 Q WS 29376775 + 248 [qemu-io] 259,0 31 386 0.719283694 10729 G WS 29376775 + 248 [qemu-io] 259,0 31 387 0.719285909 10729 D WS 29376775 + 248 [qemu-io] 259,0 31 388 0.719287600 10729 Q WS 29377023 + 8 [qemu-io] 259,0 31 389 0.719287810 10729 G WS 29377023 + 8 [qemu-io] 259,0 31 390 0.719288666 10729 D WS 29377023 + 8 [qemu-io] 259,0 31 391 0.719315193 10729 Q WS 29377031 + 248 [qemu-io] 259,0 31 392 0.719315400 10729 G WS 29377031 + 248 [qemu-io] 259,0 31 393 0.719317411 10729 D WS 29377031 + 248 [qemu-io] 259,0 31 394 0.719319179 10729 Q WS 29377279 + 8 [qemu-io] 259,0 31 395 0.719319366 10729 G WS 29377279 + 8 [qemu-io] 259,0 31 396 0.719320014 10729 D WS 29377279 + 8 [qemu-io] ..... 259,0 31 916 0.722132787 10729 C WS 29377031 + 248 [0] .... 259,0 31 995 0.722549469 10729 C WS 29376775 + 248 [0] .... 259,0 31 4260 0.748148953 10729 C WS 29377023 + 8 [0] ..... 259,0 31 4274 0.748217568 10729 C WS 29377279 + 8 [0] I'm not quite sure why each bio dispatched to device that soon, AFAIU plug/unplug scope whole do_direct_IO() loop, So bio it looks like bio submit to request path should be modified. > > Paolo > >> IMHO patch is not sufficient. We have to correct bio construction >> inside direct-io code. I'll be back with the patch.