This patch allows to choose at the command line level which thread pool implementation will be used by every block device.
Signed-off-by: Matthias Brugger <matthias....@gmail.com> --- blockdev.c | 13 +++++++++++++ qemu-options.hx | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/blockdev.c b/blockdev.c index b260477..a16cc9a 100644 --- a/blockdev.c +++ b/blockdev.c @@ -387,6 +387,15 @@ static DriveInfo *blockdev_init(QDict *bs_opts, } } #endif + buf = qemu_opt_get(opts, "workerthreads"); + if (buf != NULL) { + if (!strcmp(buf, "pool")) { + /* this is the default */ + } else { + error_report("invalid workerthreads option"); + return NULL; + } + } if ((buf = qemu_opt_get(opts, "format")) != NULL) { if (is_help_option(buf)) { @@ -2269,6 +2278,10 @@ QemuOptsList qemu_common_drive_opts = { .type = QEMU_OPT_STRING, .help = "disk serial number", },{ + .name = "workerthreads", + .type = QEMU_OPT_STRING, + .help = "type of worker threads (pool)", + },{ .name = "rerror", .type = QEMU_OPT_STRING, .help = "read error action", diff --git a/qemu-options.hx b/qemu-options.hx index 5dc8b75..6f22242 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -408,7 +408,7 @@ DEF("drive", HAS_ARG, QEMU_OPTION_drive, " [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]\n" " [,cache=writethrough|writeback|none|directsync|unsafe][,format=f]\n" " [,serial=s][,addr=A][,id=name][,aio=threads|native]\n" - " [,readonly=on|off][,copy-on-read=on|off]\n" + " [,workerthreads=pool][,readonly=on|off][,copy-on-read=on|off]\n" " [[,bps=b]|[[,bps_rd=r][,bps_wr=w]]]\n" " [[,iops=i]|[[,iops_rd=r][,iops_wr=w]]]\n" " [[,bps_max=bm]|[[,bps_rd_max=rm][,bps_wr_max=wm]]]\n" -- 1.8.1.2