From: Anthony Liguori <anthony@codemonkey.ws>
To: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 05/11] virtio-blk: support VIRTIO_BLK_F_CONFIG_WCE
Date: Sun, 12 Aug 2012 15:47:21 -0500 [thread overview]
Message-ID: <87wr13bzxi.fsf@codemonkey.ws> (raw)
In-Reply-To: <1344617249-6620-6-git-send-email-kwolf@redhat.com>
Kevin Wolf <kwolf@redhat.com> writes:
> From: Paolo Bonzini <pbonzini@redhat.com>
>
> Also rename VIRTIO_BLK_F_WCACHE to VIRTIO_BLK_F_WCE for consistency with
> the spec.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This broke qemu-test because it changed the pc-1.0 machine type:
Setting guest RANDOM seed to 47167
*** Running tests ***
Running test /tests/finger-print.sh... OK
--- fingerprints/pc-1.0.x86_64 2011-12-18 13:08:40.000000000 -0600
+++ fingerprint.txt 2012-08-12 13:30:48.000000000 -0500
@@ -55,7 +55,7 @@
/sys/bus/pci/devices/0000:00:06.0/subsystem_device=0x0002
/sys/bus/pci/devices/0000:00:06.0/class=0x010000
/sys/bus/pci/devices/0000:00:06.0/revision=0x00
-/sys/bus/pci/devices/0000:00:06.0/virtio/host-features=0x710006d4
+/sys/bus/pci/devices/0000:00:06.0/virtio/host-features=0x71000ed4
/sys/class/dmi/id/bios_vendor=Bochs
/sys/class/dmi/id/bios_date=01/01/2007
/sys/class/dmi/id/bios_version=Bochs
Guest fingerprint changed for pc-1.0!
Need to make this a qdev-visible feature and then add compatibility
properties for all of the old machine types.
Regards,
Anthony Liguori
> ---
> 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 552b3b6..97bb4bd 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);
> +}
> +
> static uint32_t virtio_blk_get_features(VirtIODevice *vdev, uint32_t features)
> {
> VirtIOBlock *s = to_virtio_blk(vdev);
> @@ -523,9 +533,10 @@ static uint32_t virtio_blk_get_features(VirtIODevice *vdev, uint32_t features)
> features |= (1 << VIRTIO_BLK_F_BLK_SIZE);
> features |= (1 << VIRTIO_BLK_F_SCSI);
>
> + features |= (1 << VIRTIO_BLK_F_CONFIG_WCE);
> if (bdrv_enable_write_cache(s->bs))
> - features |= (1 << VIRTIO_BLK_F_WCACHE);
> -
> + features |= (1 << VIRTIO_BLK_F_WCE);
> +
> if (bdrv_is_read_only(s->bs))
> features |= 1 << VIRTIO_BLK_F_RO;
>
> @@ -610,6 +621,7 @@ VirtIODevice *virtio_blk_init(DeviceState *dev, VirtIOBlkConf *blk)
> sizeof(VirtIOBlock));
>
> s->vdev.get_config = virtio_blk_update_config;
> + s->vdev.set_config = virtio_blk_set_config;
> s->vdev.get_features = virtio_blk_get_features;
> s->vdev.reset = virtio_blk_reset;
> s->bs = blk->conf.bs;
> diff --git a/hw/virtio-blk.h b/hw/virtio-blk.h
> index 79ebccc..35834cf 100644
> --- a/hw/virtio-blk.h
> +++ b/hw/virtio-blk.h
> @@ -31,8 +31,9 @@
> #define VIRTIO_BLK_F_BLK_SIZE 6 /* Block size of disk is available*/
> #define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */
> /* #define VIRTIO_BLK_F_IDENTIFY 8 ATA IDENTIFY supported, DEPRECATED */
> -#define VIRTIO_BLK_F_WCACHE 9 /* write cache enabled */
> +#define VIRTIO_BLK_F_WCE 9 /* write cache enabled */
> #define VIRTIO_BLK_F_TOPOLOGY 10 /* Topology information is available */
> +#define VIRTIO_BLK_F_CONFIG_WCE 11 /* write cache configurable */
>
> #define VIRTIO_BLK_ID_BYTES 20 /* ID string length */
>
> @@ -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;
>
> /* These two define direction. */
> --
> 1.7.6.5
next prev parent reply other threads:[~2012-08-12 20:47 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-10 16:47 [Qemu-devel] [PULL 00/11] Block patches Kevin Wolf
2012-08-10 16:47 ` [Qemu-devel] [PATCH 01/11] virtio-blk: fix use-after-free while handling scsi commands Kevin Wolf
2012-08-10 16:47 ` [Qemu-devel] [PATCH 02/11] ahci: Fix ahci cdrom read corruptions for reads > 128k Kevin Wolf
2012-08-10 16:47 ` [Qemu-devel] [PATCH 03/11] ahci: Fix sglist memleak in ahci_dma_rw_buf() Kevin Wolf
2012-08-10 16:47 ` [Qemu-devel] [PATCH 04/11] qemu-iotests: Save some sed processes Kevin Wolf
2012-08-10 16:47 ` [Qemu-devel] [PATCH 05/11] virtio-blk: support VIRTIO_BLK_F_CONFIG_WCE Kevin Wolf
2012-08-12 20:47 ` Anthony Liguori [this message]
2012-08-10 16:47 ` [Qemu-devel] [PATCH 06/11] virtio-blk: disable write cache if not negotiated Kevin Wolf
2012-08-10 16:47 ` [Qemu-devel] [PATCH 07/11] blockdev: flip default cache mode from writethrough to writeback Kevin Wolf
2013-03-27 15:16 ` Artyom Tarasenko
2013-03-27 15:19 ` Paolo Bonzini
2012-08-10 16:47 ` [Qemu-devel] [PATCH 08/11] qed: mark image clean after repair succeeds Kevin Wolf
2012-08-10 16:47 ` [Qemu-devel] [PATCH 09/11] qcow2: " Kevin Wolf
2012-08-10 16:47 ` [Qemu-devel] [PATCH 10/11] block: add BLOCK_O_CHECK for qemu-img check Kevin Wolf
2012-08-10 16:47 ` [Qemu-devel] [PATCH 11/11] qemu-iotests: skip 039 with ./check -nocache Kevin Wolf
2012-08-12 18:14 ` [Qemu-devel] [PULL 00/11] Block patches Anthony Liguori
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=87wr13bzxi.fsf@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).