[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