Message ID | 20180425183223.580566-2-eblake@redhat.com |
---|---|
State | New |
Headers | show |
Series | block: more byte-based cleanups: vectored I/O | expand |
On 04/25/2018 02:32 PM, Eric Blake wrote: > We are gradually moving away from sector-based interfaces, towards > byte-based. Make the change for the last few sector-based calls > into the block layer from the parallels driver. > > Ideally, the parallels driver should switch to doing everything > byte-based, but that's a more invasive change that requires a > bit more auditing. > > Signed-off-by: Eric Blake <eblake@redhat.com> Older than a month, so I'm assuming this is dropped for now. --js
On 05/23/2018 02:19 PM, John Snow wrote: > > > On 04/25/2018 02:32 PM, Eric Blake wrote: >> We are gradually moving away from sector-based interfaces, towards >> byte-based. Make the change for the last few sector-based calls >> into the block layer from the parallels driver. >> >> Ideally, the parallels driver should switch to doing everything >> byte-based, but that's a more invasive change that requires a >> bit more auditing. >> >> Signed-off-by: Eric Blake <eblake@redhat.com> > > Older than a month, so I'm assuming this is dropped for now. No, it's still awaiting a review; and still applies without any context changes.
On 05/23/2018 04:09 PM, Eric Blake wrote: > On 05/23/2018 02:19 PM, John Snow wrote: >> >> >> On 04/25/2018 02:32 PM, Eric Blake wrote: >>> We are gradually moving away from sector-based interfaces, towards >>> byte-based. Make the change for the last few sector-based calls >>> into the block layer from the parallels driver. >>> >>> Ideally, the parallels driver should switch to doing everything >>> byte-based, but that's a more invasive change that requires a >>> bit more auditing. >>> >>> Signed-off-by: Eric Blake <eblake@redhat.com> >> >> Older than a month, so I'm assuming this is dropped for now. > > No, it's still awaiting a review; and still applies without any context > changes. Oh, OK! then I'll count this as my naive ping-by-proxy. --js
On Wed, Apr 25, 2018 at 01:32:16PM -0500, Eric Blake wrote: > We are gradually moving away from sector-based interfaces, towards > byte-based. Make the change for the last few sector-based calls > into the block layer from the parallels driver. > > Ideally, the parallels driver should switch to doing everything > byte-based, but that's a more invasive change that requires a > bit more auditing. > > Signed-off-by: Eric Blake <eblake@redhat.com> > --- > block/parallels.c | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
On 04/25/2018 09:32 PM, Eric Blake wrote: > We are gradually moving away from sector-based interfaces, towards > byte-based. Make the change for the last few sector-based calls > into the block layer from the parallels driver. > > Ideally, the parallels driver should switch to doing everything > byte-based, but that's a more invasive change that requires a > bit more auditing. > > Signed-off-by: Eric Blake <eblake@redhat.com> > --- > block/parallels.c | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) > > diff --git a/block/parallels.c b/block/parallels.c > index 3f74fcb877a..c071c7f759f 100644 > --- a/block/parallels.c > +++ b/block/parallels.c > @@ -226,14 +226,15 @@ static int64_t allocate_clusters(BlockDriverState *bs, int64_t sector_num, > }; > qemu_iovec_init_external(&qiov, &iov, 1); > > - ret = bdrv_co_readv(bs->backing, idx * s->tracks, nb_cow_sectors, > - &qiov); > + ret = bdrv_co_preadv(bs->backing, idx * s->tracks * BDRV_SECTOR_SIZE, > + nb_cow_bytes, &qiov, 0); > if (ret < 0) { > qemu_vfree(iov.iov_base); > return ret; > } > > - ret = bdrv_co_writev(bs->file, s->data_end, nb_cow_sectors, &qiov); > + ret = bdrv_co_pwritev(bs->file, s->data_end * BDRV_SECTOR_SIZE, > + nb_cow_bytes, &qiov, 0); > qemu_vfree(iov.iov_base); > if (ret < 0) { > return ret; > @@ -339,7 +340,8 @@ static coroutine_fn int parallels_co_writev(BlockDriverState *bs, > qemu_iovec_reset(&hd_qiov); > qemu_iovec_concat(&hd_qiov, qiov, bytes_done, nbytes); > > - ret = bdrv_co_writev(bs->file, position, n, &hd_qiov); > + ret = bdrv_co_pwritev(bs->file, position * BDRV_SECTOR_SIZE, nbytes, > + &hd_qiov, 0); > if (ret < 0) { > break; > } > @@ -378,7 +380,8 @@ static coroutine_fn int parallels_co_readv(BlockDriverState *bs, > > if (position < 0) { > if (bs->backing) { > - ret = bdrv_co_readv(bs->backing, sector_num, n, &hd_qiov); > + ret = bdrv_co_preadv(bs->backing, sector_num * BDRV_SECTOR_SIZE, > + nbytes, &hd_qiov, 0); > if (ret < 0) { > break; > } > @@ -386,7 +389,8 @@ static coroutine_fn int parallels_co_readv(BlockDriverState *bs, > qemu_iovec_memset(&hd_qiov, 0, 0, nbytes); > } > } else { > - ret = bdrv_co_readv(bs->file, position, n, &hd_qiov); > + ret = bdrv_co_preadv(bs->file, position * BDRV_SECTOR_SIZE, nbytes, > + &hd_qiov, 0); > if (ret < 0) { > break; > } Reviewed-by: Denis V. Lunev <den@openvz.org>
diff --git a/block/parallels.c b/block/parallels.c index 3f74fcb877a..c071c7f759f 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -226,14 +226,15 @@ static int64_t allocate_clusters(BlockDriverState *bs, int64_t sector_num, }; qemu_iovec_init_external(&qiov, &iov, 1); - ret = bdrv_co_readv(bs->backing, idx * s->tracks, nb_cow_sectors, - &qiov); + ret = bdrv_co_preadv(bs->backing, idx * s->tracks * BDRV_SECTOR_SIZE, + nb_cow_bytes, &qiov, 0); if (ret < 0) { qemu_vfree(iov.iov_base); return ret; } - ret = bdrv_co_writev(bs->file, s->data_end, nb_cow_sectors, &qiov); + ret = bdrv_co_pwritev(bs->file, s->data_end * BDRV_SECTOR_SIZE, + nb_cow_bytes, &qiov, 0); qemu_vfree(iov.iov_base); if (ret < 0) { return ret; @@ -339,7 +340,8 @@ static coroutine_fn int parallels_co_writev(BlockDriverState *bs, qemu_iovec_reset(&hd_qiov); qemu_iovec_concat(&hd_qiov, qiov, bytes_done, nbytes); - ret = bdrv_co_writev(bs->file, position, n, &hd_qiov); + ret = bdrv_co_pwritev(bs->file, position * BDRV_SECTOR_SIZE, nbytes, + &hd_qiov, 0); if (ret < 0) { break; } @@ -378,7 +380,8 @@ static coroutine_fn int parallels_co_readv(BlockDriverState *bs, if (position < 0) { if (bs->backing) { - ret = bdrv_co_readv(bs->backing, sector_num, n, &hd_qiov); + ret = bdrv_co_preadv(bs->backing, sector_num * BDRV_SECTOR_SIZE, + nbytes, &hd_qiov, 0); if (ret < 0) { break; } @@ -386,7 +389,8 @@ static coroutine_fn int parallels_co_readv(BlockDriverState *bs, qemu_iovec_memset(&hd_qiov, 0, 0, nbytes); } } else { - ret = bdrv_co_readv(bs->file, position, n, &hd_qiov); + ret = bdrv_co_preadv(bs->file, position * BDRV_SECTOR_SIZE, nbytes, + &hd_qiov, 0); if (ret < 0) { break; }
We are gradually moving away from sector-based interfaces, towards byte-based. Make the change for the last few sector-based calls into the block layer from the parallels driver. Ideally, the parallels driver should switch to doing everything byte-based, but that's a more invasive change that requires a bit more auditing. Signed-off-by: Eric Blake <eblake@redhat.com> --- block/parallels.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)