From: Eric Blake <eblake@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>, qemu-block@nongnu.org
Cc: famz@redhat.com, sw@weilnetz.de, qemu-devel@nongnu.org,
mreitz@redhat.com, stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCH 01/17] block: Introduce bdrv_driver_preadv()
Date: Wed, 27 Apr 2016 07:52:04 -0600 [thread overview]
Message-ID: <5720C404.8060807@redhat.com> (raw)
In-Reply-To: <1461750767-23273-2-git-send-email-kwolf@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 1572 bytes --]
On 04/27/2016 03:52 AM, Kevin Wolf wrote:
> This is a function that simply calls into the block driver for doing a
> read, providing the byte granularity interface we want to eventually
> have everywhere, and using whatever interface that driver supports.
>
> For now, this is just a wrapper for calling bs->drv->bdrv_co_readv().
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
> block/io.c | 30 +++++++++++++++++++++++-------
> 1 file changed, 23 insertions(+), 7 deletions(-)
>
> diff --git a/block/io.c b/block/io.c
> index a7dbf85..586a46a 100644
> --- a/block/io.c
> +++ b/block/io.c
> @@ -800,6 +800,21 @@ int bdrv_pwrite_sync(BlockDriverState *bs, int64_t offset,
> return 0;
> }
>
> +static int coroutine_fn bdrv_driver_preadv(BlockDriverState *bs,
> + uint64_t offset, uint64_t bytes,
> + QEMUIOVector *qiov, int flags)
> +{
> + BlockDriver *drv = bs->drv;
> + int64_t sector_num = offset >> BDRV_SECTOR_BITS;
> + unsigned int nb_sectors = bytes >> BDRV_SECTOR_BITS;
> +
> + assert((offset & (BDRV_SECTOR_SIZE - 1)) == 0);
> + assert((bytes & (BDRV_SECTOR_SIZE - 1)) == 0);
> + assert((bytes >> BDRV_SECTOR_BITS) <= BDRV_REQUEST_MAX_SECTORS);
So for now it is still enforcing 512-byte alignment, but gives us the
opportunity to relax things later.
Reviewed-by: Eric Blake <eblake@redhat.com>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
next prev parent reply other threads:[~2016-04-27 13:52 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-27 9:52 [Qemu-devel] [PATCH 00/17] block: Convert .bdrv_read/write to .bdrv_preadv/pwritev Kevin Wolf
2016-04-27 9:52 ` [Qemu-devel] [PATCH 01/17] block: Introduce bdrv_driver_preadv() Kevin Wolf
2016-04-27 13:52 ` Eric Blake [this message]
2016-04-27 9:52 ` [Qemu-devel] [PATCH 02/17] block: Introduce bdrv_driver_pwritev() Kevin Wolf
2016-04-27 14:03 ` Eric Blake
2016-04-27 9:52 ` [Qemu-devel] [PATCH 03/17] block: Support AIO drivers in bdrv_driver_preadv/pwritev() Kevin Wolf
2016-04-27 14:13 ` Eric Blake
2016-04-27 9:52 ` [Qemu-devel] [PATCH 04/17] block: Rename bdrv_co_do_preadv/writev to bdrv_co_preadv/writev Kevin Wolf
2016-04-27 14:34 ` Eric Blake
2016-04-27 14:40 ` Kevin Wolf
2016-04-27 9:52 ` [Qemu-devel] [PATCH 05/17] block: Introduce .bdrv_co_preadv/pwritev BlockDriver function Kevin Wolf
2016-04-27 15:44 ` Eric Blake
2016-04-27 9:52 ` [Qemu-devel] [PATCH 06/17] bochs: Implement .bdrv_co_preadv() interface Kevin Wolf
2016-04-27 14:06 ` Stefan Hajnoczi
2016-04-27 14:33 ` Kevin Wolf
2016-04-27 15:51 ` Eric Blake
2016-04-28 8:21 ` Kevin Wolf
2016-04-28 8:42 ` Markus Armbruster
2016-04-27 9:52 ` [Qemu-devel] [PATCH 07/17] cloop: " Kevin Wolf
2016-04-27 14:12 ` Stefan Hajnoczi
2016-04-27 9:52 ` [Qemu-devel] [PATCH 08/17] dmg: " Kevin Wolf
2016-04-27 9:52 ` [Qemu-devel] [PATCH 09/17] vdi: " Kevin Wolf
2016-04-27 9:52 ` [Qemu-devel] [PATCH 10/17] vdi: Implement .bdrv_co_pwritev() interface Kevin Wolf
2016-04-27 14:17 ` Stefan Hajnoczi
2016-04-27 14:36 ` Kevin Wolf
2016-04-27 9:52 ` [Qemu-devel] [PATCH 11/17] vmdk: Add vmdk_find_offset_in_cluster() Kevin Wolf
2016-04-27 9:52 ` [Qemu-devel] [PATCH 12/17] vmdk: Implement .bdrv_co_preadv() interface Kevin Wolf
2016-04-27 9:52 ` [Qemu-devel] [PATCH 13/17] vmdk: Implement .bdrv_co_pwritev() interface Kevin Wolf
2016-04-27 14:21 ` Stefan Hajnoczi
2016-04-27 9:52 ` [Qemu-devel] [PATCH 14/17] vpc: Implement .bdrv_co_preadv() interface Kevin Wolf
2016-04-27 9:52 ` [Qemu-devel] [PATCH 15/17] vpc: Implement .bdrv_co_pwritev() interface Kevin Wolf
2016-04-27 9:52 ` [Qemu-devel] [PATCH 16/17] vvfat: Implement .bdrv_co_preadv/pwritev interfaces Kevin Wolf
2016-04-27 9:52 ` [Qemu-devel] [PATCH 17/17] block: Remove BlockDriver.bdrv_read/write Kevin Wolf
2016-04-27 14:26 ` [Qemu-devel] [PATCH 00/17] block: Convert .bdrv_read/write to .bdrv_preadv/pwritev Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5720C404.8060807@redhat.com \
--to=eblake@redhat.com \
--cc=famz@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
--cc=sw@weilnetz.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.