[PATCH v2 11/15] qemu: Wire up new virDomainSetIOThreadParams parameters
Peter Krempa
pkrempa at redhat.com
Tue Jun 7 15:13:28 UTC 2022
On Tue, Jun 07, 2022 at 14:52:55 +0200, Michal Privoznik wrote:
> Introduced in previous commit, QEMU driver needs to be taught how
> to set VIR_DOMAIN_IOTHREAD_THREAD_POOL_MIN and
> VIR_DOMAIN_IOTHREAD_THREAD_POOL_MAX parameters on given IOThread.
> Fortunately, this is fairly trivial to do and since these two
> parameters are exposed in domain XML too the update of inactive
> XML can be wired up too.
>
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
> src/qemu/qemu_driver.c | 62 +++++++++++++++++++++++++++++++++---
> src/qemu/qemu_monitor.h | 4 +++
> src/qemu/qemu_monitor_json.c | 2 ++
> 3 files changed, 63 insertions(+), 5 deletions(-)
[...]
> @@ -5567,10 +5609,20 @@ qemuDomainChgIOThread(virQEMUDriver *driver,
> break;
>
> case VIR_DOMAIN_IOTHREAD_ACTION_MOD:
> - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
> - _("configuring persistent polling values is "
> - "not supported"));
> - goto endjob;
> + iothreaddef = virDomainIOThreadIDFind(def, iothread.iothread_id);
This needs to reference 'persistentDef':
When setting the params on an inactive VM:
0x00007ffff7bef078 in virDomainIOThreadIDFind (def=0x0, iothread_id=3) at ../../../libvirt/src/conf/domain_conf.c:22939
22939 if (!def->iothreadids || !def->niothreadids)
(gdb) bt
#0 0x00007ffff7bef078 in virDomainIOThreadIDFind (def=0x0, iothread_id=3) at ../../../libvirt/src/conf/domain_conf.c:22939
#1 0x00007fffcb057309 in qemuDomainChgIOThread (driver=0x7fff9c14e910, vm=0x7fff9c1e5880, iothread=..., action=VIR_DOMAIN_IOTHREAD_ACTION_MOD, flags=0)
at ../../../libvirt/src/qemu/qemu_driver.c:5612
#2 0x00007fffcb057aee in qemuDomainSetIOThreadParams (dom=0x7fff94014c10, iothread_id=3, params=0x7fffe4015820, nparams=1, flags=0)
at ../../../libvirt/src/qemu/qemu_driver.c:5755
#3 0x00007ffff7e26f18 in virDomainSetIOThreadParams (domain=0x7fff94014c10, iothread_id=3, params=0x7fffe4015820, nparams=1, flags=0)
at ../../../libvirt/src/libvirt-domain.c:8422
#4 0x00005555555933d5 in remoteDispatchDomainSetIOThreadParams (server=0x555555628080, client=0x5555556eb230, msg=0x5555556ee930, rerr=0x7ffff4c1e800, args=0x7fffe43c4650)
at src/remote/remote_daemon_dispatch_stubs.h:11062
#5 0x00005555555932cc in remoteDispatchDomainSetIOThreadParamsHelper
(server=0x555555628080, client=0x5555556eb230, msg=0x5555556ee930, rerr=0x7ffff4c1e800, args=0x7fffe43c4650, ret=0x0) at src/remote/remote_daemon_dispatch_stubs.h:11032
#6 0x00007ffff7c906b6 in virNetServerProgramDispatchCall (prog=0x5555556dcc10, server=0x555555628080, client=0x5555556eb230, msg=0x5555556ee930)
at ../../../libvirt/src/rpc/virnetserverprogram.c:428
#7 0x00007ffff7c901fb in virNetServerProgramDispatch (prog=0x5555556dcc10, server=0x555555628080, client=0x5555556eb230, msg=0x5555556ee930)
at ../../../libvirt/src/rpc/virnetserverprogram.c:302
#8 0x00007ffff7c98f63 in virNetServerProcessMsg (srv=0x555555628080, client=0x5555556eb230, prog=0x5555556dcc10, msg=0x5555556ee930)
at ../../../libvirt/src/rpc/virnetserver.c:136
#9 0x00007ffff7c99029 in virNetServerHandleJob (jobOpaque=0x5555556f05e0, opaque=0x555555628080) at ../../../libvirt/src/rpc/virnetserver.c:156
#10 0x00007ffff7b7628b in virThreadPoolWorker (opaque=0x555555624ec0) at ../../../libvirt/src/util/virthreadpool.c:164
#11 0x00007ffff7b7572a in virThreadHelper (data=0x555555624ee0) at ../../../libvirt/src/util/virthread.c:256
#12 0x00007ffff74abe1d in start_thread () at /lib64/libc.so.6
#13 0x00007ffff75315e0 in clone3 () at /lib64/libc.so.6
More information about the libvir-list
mailing list