BlockConf includes several properties counted in bytes.
Enhance their handling in some aspects, specifically
- accept common size suffixes (k, m)
- perform consistency checks on the values
- lift the upper limit on physical_block_size and logical_block_size
Also fix the accessor for opt_io_size in virtio-blk to make it consistent with
the size of the field.
History:
v6 -> v7:
- avoid overflow in min_io_size check [Eric]
- try again to perform the art form in patch splitting [Eric]
v5 -> v6:
- fix forgotten xen-block and swim
- add prop_size32 instead of going with 64bit
v4 -> v5:
- re-split the patches [Philippe]
- fix/reword error messages [Philippe, Kevin]
- do early return on failed consistency check [Philippe]
- use QEMU_IS_ALIGNED instead of open coding [Philippe]
- make all BlockConf size props support suffixes
- expand the log for virtio-blk opt_io_size [Michael]
v3 -> v4:
- add patch to fix opt_io_size width in virtio-blk
- add patch to perform consistency checks [Kevin]
- check min_io_size against truncation [Kevin]
v2 -> v3:
- mention qcow2 cluster size limit in the log and comment [Eric]
v1 -> v2:
- cap the property at 2 MiB [Eric]
- accept size suffixes
Roman Kagan (8):
virtio-blk: store opt_io_size with correct size
block: consolidate blocksize properties consistency checks
qdev-properties: blocksize: use same limits in code and description
qdev-properties: add size32 property type
qdev-properties: make blocksize accept size suffixes
block: make BlockConf size props 32bit and accept size suffixes
qdev-properties: add getter for size32 and blocksize
block: lift blocksize property limit to 2 MiB
include/hw/block/block.h | 14 +-
include/hw/qdev-properties.h | 5 +-
hw/block/block.c | 41 ++-
hw/block/fdc.c | 5 +-
hw/block/nvme.c | 5 +-
hw/block/swim.c | 5 +-
hw/block/virtio-blk.c | 9 +-
hw/block/xen-block.c | 6 +-
hw/core/qdev-properties.c | 85 +++++-
hw/ide/qdev.c | 5 +-
hw/scsi/scsi-disk.c | 12 +-
hw/usb/dev-storage.c | 5 +-
tests/qemu-iotests/172.out | 532 +++++++++++++++++------------------
13 files changed, 420 insertions(+), 309 deletions(-)
--
2.26.2