From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59680) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b08zE-0002du-0f for qemu-devel@nongnu.org; Tue, 10 May 2016 10:50:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b08z7-0000fh-Kh for qemu-devel@nongnu.org; Tue, 10 May 2016 10:50:11 -0400 Date: Tue, 10 May 2016 16:49:55 +0200 From: Kevin Wolf Message-ID: <20160510144955.GC21860@noname.str.redhat.com> References: <1462552005-4887-1-git-send-email-eblake@redhat.com> <1462552005-4887-7-git-send-email-eblake@redhat.com> <20160510085544.GE4921@noname.str.redhat.com> <5731DA81.90702@redhat.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="BXVAT5kNtrzKuDFl" Content-Disposition: inline In-Reply-To: <5731DA81.90702@redhat.com> Subject: Re: [Qemu-devel] [PATCH v7 06/19] scsi-disk: Switch to byte-based aio block access List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org, Paolo Bonzini --BXVAT5kNtrzKuDFl Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Am 10.05.2016 um 14:56 hat Eric Blake geschrieben: > On 05/10/2016 02:55 AM, Kevin Wolf wrote: > > Am 06.05.2016 um 18:26 hat Eric Blake geschrieben: > >> Sector-based blk_aio_readv() and blk_aio_writev() should die; switch > >> to byte-based blk_aio_preadv() and blk_aio_pwritev() instead. > >> > >> As part of the cleanup, scsi_init_iovec() no longer needs to return > >> a value, and reword a comment. > >> > >> Signed-off-by: Eric Blake > >> >=20 > >> @@ -118,7 +118,6 @@ static uint32_t scsi_init_iovec(SCSIDiskReq *r, si= ze_t size) > >> } > >> r->iov.iov_len =3D MIN(r->sector_count * 512, r->buflen); > >> qemu_iovec_init_external(&r->qiov, &r->iov, 1); > >> - return r->qiov.size / 512; > >=20 > > The return value was MIN(r->sector_count, SCSI_DMA_BUF_SIZE / 512). > >=20 > >> } > >> > >> static void scsi_disk_save_request(QEMUFile *f, SCSIRequest *req) >=20 > >> - n =3D scsi_init_iovec(r, SCSI_DMA_BUF_SIZE); > >> + scsi_init_iovec(r, SCSI_DMA_BUF_SIZE); > >> block_acct_start(blk_get_stats(s->qdev.conf.blk), &r->acct, > >> - n * BDRV_SECTOR_SIZE, BLOCK_ACCT_READ); > >> - r->req.aiocb =3D blk_aio_readv(s->qdev.conf.blk, r->sector, &= r->qiov, n, > >> - scsi_read_complete, r); > >> + SCSI_DMA_BUF_SIZE, BLOCK_ACCT_READ); > >=20 > > But here you use SCSI_DMA_BUF_SIZE without considering r->sector_count. > > Is this correct or are requests that are smaller than SCSI_DMA_BUF_SIZE > > now accounted for more data than they actually read? > >=20 > > Would r->qiov.size be more obviously correct? You did that for writes. >=20 > Yes. Is that something you are able to fix on commit, or should I submit > a fixup? Okay, I can fix it up while applying. Kevin --BXVAT5kNtrzKuDFl Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIcBAEBAgAGBQJXMfUTAAoJEH8JsnLIjy/WVZUQAJgYYB6nwYSzKJk4O+oBHJ5T uErWsR5cNBoo9SMGoCA20fJnkEyNFoxhY0lDvkorsLITEk12tHrLIxxobUgxzIfy PwXmxUpiqoxCzA2HsNGp4+nRpkDaI2jR2RzcV/oI26VQNJPP1fdHiKNQ/EBZOdar fymqFOw6EN6QW7w/C4EURqgQO+4iO0IoYf3OjtWwiDpcOZmjHyvAzwSOi91cRDBI dLnnoKUd8m8IFmOe2rpqF7/plnj7BomdHJqWBN4WNYNsmjbozUE6nfJiN4Iem2CJ OCdy4w0zn60J0BUUw5nVxKf3d44MxrG96i+PkZRnEuLq6rS9OgQyG6iyPl6ggL0X 9wOj4FPy4u8+zcyrS7DBsx8V7k8HJGK9r3SYa+YY2jO2nK4PD9+I0S8j+Z3SSRqT uxHOe+y6a2Qigar3WpJba3Vjt/Nk0tPOUxEjLECXSOHMhfR04CNulmdOYE3Faep9 4JaV+sEHpHCGWLs/xfqrG3oSkG+DtEGey+G/gB0LkgovtNQLnH2Sermxd2T0nqtX ncAnWrPjXLkJaG5npnTAIm/RBTQy/XPRkIuQNSH25GuEb5fJc3aAG/aD85udH0EU 8uK4P+QFbh7C3Q3vgUYD1odCH/cu8W4WGX8foGfTUo8ydmfxdV9HDdapAw6WOxS9 t/ax48fUFUWFa2k0w1+K =32kC -----END PGP SIGNATURE----- --BXVAT5kNtrzKuDFl--