The Linux kernel uses different I/O scheduler depending if the block device is a rotational device or not. Also it uses rotational devices to add entropy to the random pool.
This patch add a rotational qdev property so that the block device can be configured as a rotational device or a non-rotational device. Default to true to not change the default behavior. Signed-off-by: Aurelien Jarno <aurel...@aurel32.net> --- blockdev.c | 4 ++++ include/hw/block/block.h | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/blockdev.c b/blockdev.c index 4d8cdedd54..c914420641 100644 --- a/blockdev.c +++ b/blockdev.c @@ -4037,6 +4037,10 @@ QemuOptsList qemu_common_drive_opts = { .name = BDRV_OPT_READ_ONLY, .type = QEMU_OPT_BOOL, .help = "open drive file as read-only", + },{ + .name = "rotational", + .type = QEMU_OPT_BOOL, + .help = "rotational drive (off, on)", }, THROTTLE_OPTS, diff --git a/include/hw/block/block.h b/include/hw/block/block.h index f3f6e8ef02..304a579eca 100644 --- a/include/hw/block/block.h +++ b/include/hw/block/block.h @@ -27,6 +27,7 @@ typedef struct BlockConf { uint32_t cyls, heads, secs; OnOffAuto wce; bool share_rw; + bool rotational; BlockdevOnError rerror; BlockdevOnError werror; } BlockConf; @@ -56,7 +57,8 @@ static inline unsigned int get_physical_block_exp(BlockConf *conf) _conf.discard_granularity, -1), \ DEFINE_PROP_ON_OFF_AUTO("write-cache", _state, _conf.wce, \ ON_OFF_AUTO_AUTO), \ - DEFINE_PROP_BOOL("share-rw", _state, _conf.share_rw, false) + DEFINE_PROP_BOOL("share-rw", _state, _conf.share_rw, false), \ + DEFINE_PROP_BOOL("rotational", _state, _conf.rotational, true) #define DEFINE_BLOCK_CHS_PROPERTIES(_state, _conf) \ DEFINE_PROP_UINT32("cyls", _state, _conf.cyls, 0), \ -- 2.11.0