85 lines
3.4 KiB
Diff
85 lines
3.4 KiB
Diff
From 38097598172fa6b5b66224ee3a17dcc7d8ff6488 Mon Sep 17 00:00:00 2001
|
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
|
Date: Mon, 15 Mar 2021 18:16:26 -0400
|
|
Subject: [PATCH 10/15] block/export: use VIRTIO_BLK_SECTOR_BITS
|
|
|
|
RH-Author: Stefan Hajnoczi <stefanha@redhat.com>
|
|
Message-id: <20210315181629.212884-4-stefanha@redhat.com>
|
|
Patchwork-id: 101339
|
|
O-Subject: [RHEL-AV-8.4.0 qemu-kvm PATCH 3/6] block/export: use VIRTIO_BLK_SECTOR_BITS
|
|
Bugzilla: 1937004
|
|
RH-Acked-by: Danilo de Paula <ddepaula@redhat.com>
|
|
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
|
RH-Acked-by: Max Reitz <mreitz@redhat.com>
|
|
|
|
Use VIRTIO_BLK_SECTOR_BITS and VIRTIO_BLK_SECTOR_SIZE when dealing with
|
|
virtio-blk sector numbers. Although the values happen to be the same as
|
|
BDRV_SECTOR_BITS and BDRV_SECTOR_SIZE, they are conceptually different.
|
|
This makes it clearer when we are dealing with virtio-blk sector units.
|
|
|
|
Use VIRTIO_BLK_SECTOR_BITS in vu_blk_initialize_config(). Later patches
|
|
will use it the new constants the virtqueue request processing code
|
|
path.
|
|
|
|
Suggested-by: Max Reitz <mreitz@redhat.com>
|
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
Message-Id: <20210223144653.811468-9-stefanha@redhat.com>
|
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
(cherry picked from commit 524bac0744e5abf95856fb9e31c01fd2ef102188)
|
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
|
---
|
|
block/export/vhost-user-blk-server.c | 15 ++++++++++++---
|
|
1 file changed, 12 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/block/export/vhost-user-blk-server.c b/block/export/vhost-user-blk-server.c
|
|
index 3003cff189..feb139e067 100644
|
|
--- a/block/export/vhost-user-blk-server.c
|
|
+++ b/block/export/vhost-user-blk-server.c
|
|
@@ -20,6 +20,13 @@
|
|
#include "sysemu/block-backend.h"
|
|
#include "util/block-helpers.h"
|
|
|
|
+/*
|
|
+ * Sector units are 512 bytes regardless of the
|
|
+ * virtio_blk_config->blk_size value.
|
|
+ */
|
|
+#define VIRTIO_BLK_SECTOR_BITS 9
|
|
+#define VIRTIO_BLK_SECTOR_SIZE (1ull << VIRTIO_BLK_SECTOR_BITS)
|
|
+
|
|
enum {
|
|
VHOST_USER_BLK_NUM_QUEUES_DEFAULT = 1,
|
|
};
|
|
@@ -345,7 +352,8 @@ vu_blk_initialize_config(BlockDriverState *bs,
|
|
uint32_t blk_size,
|
|
uint16_t num_queues)
|
|
{
|
|
- config->capacity = cpu_to_le64(bdrv_getlength(bs) >> BDRV_SECTOR_BITS);
|
|
+ config->capacity =
|
|
+ cpu_to_le64(bdrv_getlength(bs) >> VIRTIO_BLK_SECTOR_BITS);
|
|
config->blk_size = cpu_to_le32(blk_size);
|
|
config->size_max = cpu_to_le32(0);
|
|
config->seg_max = cpu_to_le32(128 - 2);
|
|
@@ -354,7 +362,8 @@ vu_blk_initialize_config(BlockDriverState *bs,
|
|
config->num_queues = cpu_to_le16(num_queues);
|
|
config->max_discard_sectors = cpu_to_le32(32768);
|
|
config->max_discard_seg = cpu_to_le32(1);
|
|
- config->discard_sector_alignment = cpu_to_le32(blk_size >> 9);
|
|
+ config->discard_sector_alignment =
|
|
+ cpu_to_le32(blk_size >> VIRTIO_BLK_SECTOR_BITS);
|
|
config->max_write_zeroes_sectors = cpu_to_le32(32768);
|
|
config->max_write_zeroes_seg = cpu_to_le32(1);
|
|
}
|
|
@@ -381,7 +390,7 @@ static int vu_blk_exp_create(BlockExport *exp, BlockExportOptions *opts,
|
|
if (vu_opts->has_logical_block_size) {
|
|
logical_block_size = vu_opts->logical_block_size;
|
|
} else {
|
|
- logical_block_size = BDRV_SECTOR_SIZE;
|
|
+ logical_block_size = VIRTIO_BLK_SECTOR_SIZE;
|
|
}
|
|
check_block_size(exp->id, "logical-block-size", logical_block_size,
|
|
&local_err);
|
|
--
|
|
2.27.0
|
|
|