qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, pbonzini@redhat.com, pl@kamp.de, stefanha@redhat.com
Subject: [Qemu-devel] [PATCH 07/22] block: rename buffer_alignment to guest_block_size
Date: Wed, 11 Dec 2013 22:08:14 +0100	[thread overview]
Message-ID: <1386796109-15264-8-git-send-email-kwolf@redhat.com> (raw)
In-Reply-To: <1386796109-15264-1-git-send-email-kwolf@redhat.com>

From: Paolo Bonzini <pbonzini@redhat.com>

The alignment field is now set to the value that is promised to the
guest, rather than required by the host.  The next patches will make
QEMU aware of the host-provided values, so make this clear.

The alignment is also not about memory buffers, but about the sectors on
the disk, change the documentation of the field.

At this point, the field is set by the device emulation, but completely
ignored by the block layer.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block.c                   | 10 +++++-----
 hw/block/virtio-blk.c     |  2 +-
 hw/ide/core.c             |  2 +-
 hw/scsi/scsi-disk.c       |  2 +-
 hw/scsi/scsi-generic.c    |  2 +-
 include/block/block.h     |  2 +-
 include/block/block_int.h |  4 ++--
 7 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/block.c b/block.c
index d50a4e4..3504d17 100644
--- a/block.c
+++ b/block.c
@@ -812,7 +812,7 @@ static int bdrv_open_common(BlockDriverState *bs, BlockDriverState *file,
     }
 
     bs->open_flags = flags;
-    bs->buffer_alignment = 512;
+    bs->guest_block_size = 512;
     bs->zero_beyond_eof = true;
     open_flags = bdrv_open_flags(bs, flags);
     bs->read_only = !(open_flags & BDRV_O_RDWR);
@@ -1648,7 +1648,7 @@ static void bdrv_move_feature_fields(BlockDriverState *bs_dest,
     bs_dest->dev_ops            = bs_src->dev_ops;
     bs_dest->dev_opaque         = bs_src->dev_opaque;
     bs_dest->dev                = bs_src->dev;
-    bs_dest->buffer_alignment   = bs_src->buffer_alignment;
+    bs_dest->guest_block_size   = bs_src->guest_block_size;
     bs_dest->copy_on_read       = bs_src->copy_on_read;
 
     bs_dest->enable_write_cache = bs_src->enable_write_cache;
@@ -1800,7 +1800,7 @@ void bdrv_detach_dev(BlockDriverState *bs, void *dev)
     bs->dev = NULL;
     bs->dev_ops = NULL;
     bs->dev_opaque = NULL;
-    bs->buffer_alignment = 512;
+    bs->guest_block_size = 512;
 }
 
 /* TODO change to return DeviceState * when all users are qdevified */
@@ -4556,9 +4556,9 @@ BlockDriverAIOCB *bdrv_aio_ioctl(BlockDriverState *bs,
     return NULL;
 }
 
-void bdrv_set_buffer_alignment(BlockDriverState *bs, int align)
+void bdrv_set_guest_block_size(BlockDriverState *bs, int align)
 {
-    bs->buffer_alignment = align;
+    bs->guest_block_size = align;
 }
 
 void *qemu_blockalign(BlockDriverState *bs, size_t size)
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
index 13f6d82..323e9ec 100644
--- a/hw/block/virtio-blk.c
+++ b/hw/block/virtio-blk.c
@@ -720,7 +720,7 @@ static int virtio_blk_device_init(VirtIODevice *vdev)
     register_savevm(qdev, "virtio-blk", virtio_blk_id++, 2,
                     virtio_blk_save, virtio_blk_load, s);
     bdrv_set_dev_ops(s->bs, &virtio_block_ops, s);
-    bdrv_set_buffer_alignment(s->bs, s->conf->logical_block_size);
+    bdrv_set_guest_block_size(s->bs, s->conf->logical_block_size);
 
     bdrv_iostatus_enable(s->bs);
 
diff --git a/hw/ide/core.c b/hw/ide/core.c
index e1f4c33..036cd4a 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -2103,7 +2103,7 @@ int ide_init_drive(IDEState *s, BlockDriverState *bs, IDEDriveKind kind,
     s->smart_selftest_count = 0;
     if (kind == IDE_CD) {
         bdrv_set_dev_ops(bs, &ide_cd_block_ops, s);
-        bdrv_set_buffer_alignment(bs, 2048);
+        bdrv_set_guest_block_size(bs, 2048);
     } else {
         if (!bdrv_is_inserted(s->bs)) {
             error_report("Device needs media, but drive is empty");
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index efadfc0..6cf6040 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -2225,7 +2225,7 @@ static int scsi_initfn(SCSIDevice *dev)
     } else {
         bdrv_set_dev_ops(s->qdev.conf.bs, &scsi_disk_block_ops, s);
     }
-    bdrv_set_buffer_alignment(s->qdev.conf.bs, s->qdev.blocksize);
+    bdrv_set_guest_block_size(s->qdev.conf.bs, s->qdev.blocksize);
 
     bdrv_iostatus_enable(s->qdev.conf.bs);
     add_boot_device_path(s->qdev.conf.bootindex, &dev->qdev, NULL);
diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c
index 8f195be..f08b64e 100644
--- a/hw/scsi/scsi-generic.c
+++ b/hw/scsi/scsi-generic.c
@@ -210,7 +210,7 @@ static void scsi_read_complete(void * opaque, int ret)
             s->blocksize = ldl_be_p(&r->buf[8]);
             s->max_lba = ldq_be_p(&r->buf[0]);
         }
-        bdrv_set_buffer_alignment(s->conf.bs, s->blocksize);
+        bdrv_set_guest_block_size(s->conf.bs, s->blocksize);
 
         scsi_req_data(&r->req, len);
         if (!r->req.io_canceled) {
diff --git a/include/block/block.h b/include/block/block.h
index cf63ee2..05252d5 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -422,7 +422,7 @@ void bdrv_img_create(const char *filename, const char *fmt,
 /* Returns the alignment in bytes that is required so that no bounce buffer
  * is required throughout the stack */
 size_t bdrv_opt_mem_align(BlockDriverState *bs);
-void bdrv_set_buffer_alignment(BlockDriverState *bs, int align);
+void bdrv_set_guest_block_size(BlockDriverState *bs, int align);
 void *qemu_blockalign(BlockDriverState *bs, size_t size);
 bool bdrv_qiov_is_aligned(BlockDriverState *bs, QEMUIOVector *qiov);
 
diff --git a/include/block/block_int.h b/include/block/block_int.h
index 6ffae7c..9921cd3 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -319,8 +319,8 @@ struct BlockDriverState {
     /* Whether produces zeros when read beyond eof */
     bool zero_beyond_eof;
 
-    /* the memory alignment required for the buffers handled by this driver */
-    int buffer_alignment;
+    /* the block size for which the guest device expects atomicity */
+    int guest_block_size;
 
     /* do we need to tell the quest if we have a volatile write cache? */
     int enable_write_cache;
-- 
1.8.1.4

  parent reply	other threads:[~2013-12-11 21:09 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-11 21:08 [Qemu-devel] [PATCH 00/22] block: Support for 512b-on-4k emulation Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 01/22] block: Move initialisation of BlockLimits to bdrv_refresh_limits() Kevin Wolf
2013-12-12  2:54   ` Wenchao Xia
2013-12-12  2:57     ` Wenchao Xia
2013-12-12  7:51       ` Thomas Huth
2013-12-12  9:32         ` Kevin Wolf
2013-12-12  6:17   ` Peter Lieven
2013-12-12  9:35     ` Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 02/22] block: Inherit opt_transfer_length Kevin Wolf
2013-12-12  3:02   ` Wenchao Xia
2013-12-11 21:08 ` [Qemu-devel] [PATCH 03/22] block: Update BlockLimits when they might have changed Kevin Wolf
2013-12-12  3:09   ` Wenchao Xia
2013-12-11 21:08 ` [Qemu-devel] [PATCH 04/22] qemu_memalign: Allow small alignments Kevin Wolf
2013-12-12  3:09   ` Wenchao Xia
2013-12-11 21:08 ` [Qemu-devel] [PATCH 05/22] block: Detect unaligned length in bdrv_qiov_is_aligned() Kevin Wolf
2013-12-12  3:15   ` Wenchao Xia
2013-12-11 21:08 ` [Qemu-devel] [PATCH 06/22] block: Don't use guest sector size for qemu_blockalign() Kevin Wolf
2013-12-12  6:32   ` Wenchao Xia
2013-12-11 21:08 ` Kevin Wolf [this message]
2013-12-12  6:34   ` [Qemu-devel] [PATCH 07/22] block: rename buffer_alignment to guest_block_size Wenchao Xia
2013-12-11 21:08 ` [Qemu-devel] [PATCH 08/22] raw: Probe required direct I/O alignment Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 09/22] block: Introduce bdrv_aligned_preadv() Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 10/22] block: Introduce bdrv_co_do_preadv() Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 11/22] block: Introduce bdrv_aligned_pwritev() Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 12/22] block: write: Handle COR dependency after I/O throttling Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 13/22] block: Introduce bdrv_co_do_pwritev() Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 14/22] block: Switch BdrvTrackedRequest to byte granularity Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 15/22] block: Allow waiting for overlapping requests between begin/end Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 16/22] block: Make zero-after-EOF work with larger alignment Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 17/22] block: Generalise and optimise COR serialisation Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 18/22] block: Make overlap range for serialisation dynamic Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 19/22] block: Align requests in bdrv_co_do_pwritev() Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 20/22] block: Change coroutine wrapper to byte granularity Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 21/22] block: Make bdrv_pread() a bdrv_prwv_co() wrapper Kevin Wolf
2013-12-11 21:08 ` [Qemu-devel] [PATCH 22/22] block: Make bdrv_pwrite() " Kevin Wolf
2013-12-12  6:09 ` [Qemu-devel] [PATCH 00/22] block: Support for 512b-on-4k emulation Peter Lieven
2013-12-12  9:47   ` Kevin Wolf
2013-12-12 10:26     ` Peter Lieven
2013-12-12 12:48     ` Peter Lieven

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=1386796109-15264-8-git-send-email-kwolf@redhat.com \
    --to=kwolf@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=pl@kamp.de \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /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).