From: Kevin Wolf <kwolf@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, mst@redhat.com,
anthony@codemonkey.ws, rusty@rustcorp.com.au
Subject: Re: [PATCH 1/2] virtio-blk: support VIRTIO_BLK_F_CONFIG_WCE
Date: Tue, 03 Jul 2012 15:46:06 +0200 [thread overview]
Message-ID: <4FF2F79E.2080805@redhat.com> (raw)
In-Reply-To: <1341321642-24598-2-git-send-email-pbonzini@redhat.com>
Am 03.07.2012 15:20, schrieb Paolo Bonzini:
> Introduce a new feature bit and configuration field that provide
> support for toggling the cache mode between writethrough and writeback.
>
> Also rename VIRTIO_BLK_F_WCACHE to VIRTIO_BLK_F_WCE for consistency with
> the spec.
My spec (and my kernel as well) call it VIRTIO_BLK_F_FLUSH.
What's the status of the kernel and spec side of the change?
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> hw/virtio-blk.c | 16 ++++++++++++++--
> hw/virtio-blk.h | 4 +++-
> 2 files changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c
> index fe07746..280f96d 100644
> --- a/hw/virtio-blk.c
> +++ b/hw/virtio-blk.c
> @@ -510,9 +510,19 @@ static void virtio_blk_update_config(VirtIODevice *vdev, uint8_t *config)
> blkcfg.size_max = 0;
> blkcfg.physical_block_exp = get_physical_block_exp(s->conf);
> blkcfg.alignment_offset = 0;
> + blkcfg.wce = bdrv_enable_write_cache(s->bs);
> memcpy(config, &blkcfg, sizeof(struct virtio_blk_config));
> }
>
> +static void virtio_blk_set_config(VirtIODevice *vdev, const uint8_t *config)
> +{
> + VirtIOBlock *s = to_virtio_blk(vdev);
> + struct virtio_blk_config blkcfg;
> +
> + memcpy(&blkcfg, config, sizeof(blkcfg));
> + bdrv_set_enable_write_cache(s->bs, blkcfg.wce != 0);
> +}
We need to call bdrv_flush() here when turning WCE off. And it seems we
don't have a way to signal failure, or may we just leave the bit unchanged?
> @@ -49,6 +50,7 @@ struct virtio_blk_config
> uint8_t alignment_offset;
> uint16_t min_io_size;
> uint32_t opt_io_size;
> + uint8_t wce;
> } QEMU_PACKED;
If the spec isn't set in stone yet, we could make it a flags field
instead of using a whole byte for a single flag.
Kevin
WARNING: multiple messages have this Message-ID (diff)
From: Kevin Wolf <kwolf@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: anthony@codemonkey.ws, rusty@rustcorp.com.au,
qemu-devel@nongnu.org, kvm@vger.kernel.org, mst@redhat.com
Subject: Re: [Qemu-devel] [PATCH 1/2] virtio-blk: support VIRTIO_BLK_F_CONFIG_WCE
Date: Tue, 03 Jul 2012 15:46:06 +0200 [thread overview]
Message-ID: <4FF2F79E.2080805@redhat.com> (raw)
In-Reply-To: <1341321642-24598-2-git-send-email-pbonzini@redhat.com>
Am 03.07.2012 15:20, schrieb Paolo Bonzini:
> Introduce a new feature bit and configuration field that provide
> support for toggling the cache mode between writethrough and writeback.
>
> Also rename VIRTIO_BLK_F_WCACHE to VIRTIO_BLK_F_WCE for consistency with
> the spec.
My spec (and my kernel as well) call it VIRTIO_BLK_F_FLUSH.
What's the status of the kernel and spec side of the change?
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> hw/virtio-blk.c | 16 ++++++++++++++--
> hw/virtio-blk.h | 4 +++-
> 2 files changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c
> index fe07746..280f96d 100644
> --- a/hw/virtio-blk.c
> +++ b/hw/virtio-blk.c
> @@ -510,9 +510,19 @@ static void virtio_blk_update_config(VirtIODevice *vdev, uint8_t *config)
> blkcfg.size_max = 0;
> blkcfg.physical_block_exp = get_physical_block_exp(s->conf);
> blkcfg.alignment_offset = 0;
> + blkcfg.wce = bdrv_enable_write_cache(s->bs);
> memcpy(config, &blkcfg, sizeof(struct virtio_blk_config));
> }
>
> +static void virtio_blk_set_config(VirtIODevice *vdev, const uint8_t *config)
> +{
> + VirtIOBlock *s = to_virtio_blk(vdev);
> + struct virtio_blk_config blkcfg;
> +
> + memcpy(&blkcfg, config, sizeof(blkcfg));
> + bdrv_set_enable_write_cache(s->bs, blkcfg.wce != 0);
> +}
We need to call bdrv_flush() here when turning WCE off. And it seems we
don't have a way to signal failure, or may we just leave the bit unchanged?
> @@ -49,6 +50,7 @@ struct virtio_blk_config
> uint8_t alignment_offset;
> uint16_t min_io_size;
> uint32_t opt_io_size;
> + uint8_t wce;
> } QEMU_PACKED;
If the spec isn't set in stone yet, we could make it a flags field
instead of using a whole byte for a single flag.
Kevin
next prev parent reply other threads:[~2012-07-03 13:46 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-03 13:20 [QEMU PATCH 0/2] virtio-blk: writeback cache enable improvements Paolo Bonzini
2012-07-03 13:20 ` [Qemu-devel] " Paolo Bonzini
2012-07-03 13:20 ` [PATCH 1/2] virtio-blk: support VIRTIO_BLK_F_CONFIG_WCE Paolo Bonzini
2012-07-03 13:20 ` [Qemu-devel] " Paolo Bonzini
2012-07-03 13:46 ` Kevin Wolf [this message]
2012-07-03 13:46 ` Kevin Wolf
2012-07-03 13:54 ` Paolo Bonzini
2012-07-03 13:54 ` [Qemu-devel] " Paolo Bonzini
2012-07-03 13:20 ` [PATCH 2/2] virtio-blk: disable write cache if not negotiated Paolo Bonzini
2012-07-03 13:20 ` [Qemu-devel] " Paolo Bonzini
2012-07-03 13:49 ` Kevin Wolf
2012-07-03 13:49 ` [Qemu-devel] " Kevin Wolf
2012-07-03 13:51 ` Paolo Bonzini
2012-07-03 13:51 ` [Qemu-devel] " Paolo Bonzini
2012-07-04 10:16 ` Kevin Wolf
2012-07-04 10:16 ` Kevin Wolf
2012-07-04 12:21 ` Paolo Bonzini
2012-07-04 12:21 ` Paolo Bonzini
2012-07-04 12:50 ` Kevin Wolf
2012-07-04 12:50 ` [Qemu-devel] " Kevin Wolf
2012-07-04 13:20 ` Paolo Bonzini
2012-07-04 13:20 ` Paolo Bonzini
2012-07-23 16:32 ` [QEMU PATCH 0/2] virtio-blk: writeback cache enable improvements Paolo Bonzini
2012-07-23 16:32 ` [Qemu-devel] " Paolo Bonzini
2012-08-01 15:52 ` Paolo Bonzini
2012-08-01 15:52 ` [Qemu-devel] " Paolo Bonzini
2012-08-01 16:25 ` Kevin Wolf
2012-08-01 16:25 ` [Qemu-devel] " Kevin Wolf
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=4FF2F79E.2080805@redhat.com \
--to=kwolf@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rusty@rustcorp.com.au \
/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.