From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38890) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSPGO-00077Q-5y for qemu-devel@nongnu.org; Fri, 12 Sep 2014 07:43:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XSPGF-0004ue-4D for qemu-devel@nongnu.org; Fri, 12 Sep 2014 07:43:40 -0400 Received: from mx-v6.kamp.de ([2a02:248:0:51::16]:42146 helo=mx01.kamp.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSPGE-0004tD-Lo for qemu-devel@nongnu.org; Fri, 12 Sep 2014 07:43:31 -0400 Message-ID: <5412DC5D.7050406@kamp.de> Date: Fri, 12 Sep 2014 13:43:25 +0200 From: Peter Lieven MIME-Version: 1.0 References: <1409935888-18552-1-git-send-email-pl@kamp.de> <1409935888-18552-3-git-send-email-pl@kamp.de> <20140908134434.GB22582@irqsave.net> <540DB3E2.6010905@redhat.com> <540DB583.4030101@kamp.de> <540DB5EB.2070705@redhat.com> <540DBEBD.9040701@kamp.de> <540DC059.4000907@redhat.com> <540DC7FB.1040804@redhat.com> <540DC8D7.80905@kamp.de> <540DCAE8.4060701@redhat.com> <29A6ECA0-C6CE-4557-80CA-31FD2CA199A2@kamp.de> <540DD986.8010301@redhat.com> In-Reply-To: <540DD986.8010301@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/4] block: immediately cancel oversized read/write requests List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: =?windows-1252?Q?Beno=EEt?= =?windows-1252?Q?_Canet?= , Kevin Wolf , ronnie sahlberg , qemu-devel , Max Reitz , Stefan Hajnoczi Am 08.09.2014 um 18:29 schrieb Paolo Bonzini: > Il 08/09/2014 18:18, Peter Lieven ha scritto: >>>> When copying data, gparted will try using very large I/O sizes. Of >>>> course if something breaks it will just use a smaller size, but it would >>>> make performance worse. >>>> >>>> I tried now (with local storage, not virtual---but with such large block >>>> sizes it's disk bound anyway, one request can take 0.1 seconds to >>>> execute) and a 2 MB block size is 20% slower than 16 MB block size on >>>> your usual 3.5" rotational SATA disk. >>>> >> can you share with what command exactly you ran these tests? >> >> i tried myself and found that without multiwrite_merge i was not able to create a request bigger than 0xffff sectors from inside linux. > On a different machine: > > $ time dd if=/dev/zero of=test bs=16777216 count=30 oflag=direct > real 0m13.497s > user 0m0.001s > sys 0m0.541s > > $ time dd if=/dev/zero of=test2 bs=1048576 count=480 oflag=direct > real 0m15.835s > user 0m0.005s > sys 0m0.770s > > The bigger block size is 17% faster; for disk-to-disk copy: > > $ time dd if=test of=test3 bs=16777216 count=30 iflag=direct oflag=direct > real 0m26.075s > user 0m0.001s > sys 0m0.678s > > $ time dd if=test2 of=test4 bs=1048576 count=480 iflag=direct oflag=direct > real 0m45.210s > user 0m0.005s > sys 0m1.145s > > The bigger block size is 73% faster. I perfectly believe that 16MB blocksize is faster than 2MB. That is true for iSCSI as well. However, I do not see requests of this size coming in via virtio-blk when I ran: dd if=/dev/zero of=test bs=16777216 count=30 oflag=direct. As you can see from the multiwrite_merge trace the merging has never been stopped because of the max_transfer_length. The question is, why are the I/O requests not coming in as specified? multiwrite_merge: num_reqs 15 -> 1 iscsi_co_writev: sector_num 0 nb_sectors 15360 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 17 -> 1 iscsi_co_writev: sector_num 15360 nb_sectors 17408 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 32768 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 19 -> 1 iscsi_co_writev: sector_num 44032 nb_sectors 19456 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 2 -> 1 iscsi_co_writev: sector_num 63488 nb_sectors 2048 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 12 -> 1 iscsi_co_writev: sector_num 65536 nb_sectors 12288 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 18 -> 1 iscsi_co_writev: sector_num 77824 nb_sectors 18432 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 2 -> 1 iscsi_co_writev: sector_num 96256 nb_sectors 2048 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 12 -> 1 iscsi_co_writev: sector_num 98304 nb_sectors 12288 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 19 -> 1 iscsi_co_writev: sector_num 110592 nb_sectors 19456 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 1 -> 1 iscsi_co_writev: sector_num 130048 nb_sectors 1024 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 131072 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 19 -> 1 iscsi_co_writev: sector_num 142336 nb_sectors 19456 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 2 -> 1 iscsi_co_writev: sector_num 161792 nb_sectors 2048 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 12 -> 1 iscsi_co_writev: sector_num 163840 nb_sectors 12288 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 19 -> 1 iscsi_co_writev: sector_num 176128 nb_sectors 19456 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 1 -> 1 iscsi_co_writev: sector_num 195584 nb_sectors 1024 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 7 -> 1 iscsi_co_writev: sector_num 196608 nb_sectors 7168 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 18 -> 1 iscsi_co_writev: sector_num 203776 nb_sectors 18432 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 7 -> 1 iscsi_co_writev: sector_num 222208 nb_sectors 7168 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 229376 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 19 -> 1 iscsi_co_writev: sector_num 240640 nb_sectors 19456 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 2 -> 1 iscsi_co_writev: sector_num 260096 nb_sectors 2048 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 262144 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 18 -> 1 iscsi_co_writev: sector_num 273408 nb_sectors 18432 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 3 -> 1 iscsi_co_writev: sector_num 291840 nb_sectors 3072 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 12 -> 1 iscsi_co_writev: sector_num 294912 nb_sectors 12288 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 19 -> 1 iscsi_co_writev: sector_num 307200 nb_sectors 19456 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 1 -> 1 iscsi_co_writev: sector_num 326656 nb_sectors 1024 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 327680 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 19 -> 1 iscsi_co_writev: sector_num 338944 nb_sectors 19456 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 2 -> 1 iscsi_co_writev: sector_num 358400 nb_sectors 2048 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 360448 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 19 -> 1 iscsi_co_writev: sector_num 371712 nb_sectors 19456 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 2 -> 1 iscsi_co_writev: sector_num 391168 nb_sectors 2048 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 393216 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 14 -> 1 iscsi_co_writev: sector_num 404480 nb_sectors 14336 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 7 -> 1 iscsi_co_writev: sector_num 418816 nb_sectors 7168 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 425984 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 20 -> 1 iscsi_co_writev: sector_num 437248 nb_sectors 20480 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 1 -> 1 iscsi_co_writev: sector_num 457728 nb_sectors 1024 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 458752 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 18 -> 1 iscsi_co_writev: sector_num 470016 nb_sectors 18432 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 3 -> 1 iscsi_co_writev: sector_num 488448 nb_sectors 3072 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 491520 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 19 -> 1 iscsi_co_writev: sector_num 502784 nb_sectors 19456 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 2 -> 1 iscsi_co_writev: sector_num 522240 nb_sectors 2048 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 524288 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 18 -> 1 iscsi_co_writev: sector_num 535552 nb_sectors 18432 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 3 -> 1 iscsi_co_writev: sector_num 553984 nb_sectors 3072 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 557056 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 19 -> 1 iscsi_co_writev: sector_num 568320 nb_sectors 19456 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 2 -> 1 iscsi_co_writev: sector_num 587776 nb_sectors 2048 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 589824 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 19 -> 1 iscsi_co_writev: sector_num 601088 nb_sectors 19456 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 2 -> 1 iscsi_co_writev: sector_num 620544 nb_sectors 2048 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 12 -> 1 iscsi_co_writev: sector_num 622592 nb_sectors 12288 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 18 -> 1 iscsi_co_writev: sector_num 634880 nb_sectors 18432 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 2 -> 1 iscsi_co_writev: sector_num 653312 nb_sectors 2048 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 655360 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 19 -> 1 iscsi_co_writev: sector_num 666624 nb_sectors 19456 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 2 -> 1 iscsi_co_writev: sector_num 686080 nb_sectors 2048 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 688128 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 19 -> 1 iscsi_co_writev: sector_num 699392 nb_sectors 19456 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 2 -> 1 iscsi_co_writev: sector_num 718848 nb_sectors 2048 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 9 -> 1 iscsi_co_writev: sector_num 720896 nb_sectors 9216 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 18 -> 1 iscsi_co_writev: sector_num 730112 nb_sectors 18432 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 5 -> 1 iscsi_co_writev: sector_num 748544 nb_sectors 5120 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 12 -> 1 iscsi_co_writev: sector_num 753664 nb_sectors 12288 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 7 -> 1 iscsi_co_writev: sector_num 765952 nb_sectors 7168 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 6 -> 1 iscsi_co_writev: sector_num 773120 nb_sectors 6144 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 7 -> 1 iscsi_co_writev: sector_num 779264 nb_sectors 7168 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 786432 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 14 -> 1 iscsi_co_writev: sector_num 797696 nb_sectors 14336 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 5 -> 1 iscsi_co_writev: sector_num 812032 nb_sectors 5120 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 2 -> 1 iscsi_co_writev: sector_num 817152 nb_sectors 2048 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 8 -> 1 iscsi_co_writev: sector_num 819200 nb_sectors 8192 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 13 -> 1 iscsi_co_writev: sector_num 827392 nb_sectors 13312 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 6 -> 1 iscsi_co_writev: sector_num 840704 nb_sectors 6144 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 5 -> 1 iscsi_co_writev: sector_num 846848 nb_sectors 5120 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 851968 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 14 -> 1 iscsi_co_writev: sector_num 863232 nb_sectors 14336 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 6 -> 1 iscsi_co_writev: sector_num 877568 nb_sectors 6144 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 1 -> 1 iscsi_co_writev: sector_num 883712 nb_sectors 1024 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 884736 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 896000 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 5 -> 1 iscsi_co_writev: sector_num 907264 nb_sectors 5120 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 5 -> 1 iscsi_co_writev: sector_num 912384 nb_sectors 5120 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 11 -> 1 iscsi_co_writev: sector_num 917504 nb_sectors 11264 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 14 -> 1 iscsi_co_writev: sector_num 928768 nb_sectors 14336 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 5 -> 1 iscsi_co_writev: sector_num 943104 nb_sectors 5120 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 2 -> 1 iscsi_co_writev: sector_num 948224 nb_sectors 2048 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 12 -> 1 iscsi_co_writev: sector_num 950272 nb_sectors 12288 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 15 -> 1 iscsi_co_writev: sector_num 962560 nb_sectors 15360 bs->bl.max_transfer_length 65535 multiwrite_merge: num_reqs 5 -> 1 iscsi_co_writev: sector_num 977920 nb_sectors 5120 bs->bl.max_transfer_length 65535 Peter > > Paolo