On 04/27/2015 11:46 AM, Peter Krempa wrote: > On Mon, Apr 27, 2015 at 11:25:15 -0400, John Ferlan wrote: >> ... >> >>>>>> --- a/src/qemu/qemu_process.c >>>>>> +++ b/src/qemu/qemu_process.c >>>>>> @@ -2267,12 +2267,16 @@ qemuProcessDetectIOThreadPIDs(virQEMUDriverPtr driver, >>>>>> goto cleanup; >>>>>> } >>>>> >>>>> A few lines prior here is the check that the expected thread count >>>>> equals to the actual thread count. For some reason a few lines before >>>>> returns success if 0 threads are returned by the monitor. The two checks >>>>> should be inverted so that it makes sense. >>>>> >>>> >>>> If there are no threads, then it's not a failure, thus change ret to be >>>> 0. Again, this is something that's not within the scope of this set of >>>> changes and I believe if necessary could be a followup patch. >>>> >>>> I'm not clear on the value of changing the order of the checks. >>> >>> The problem is that if there are no iothreads reported by qemu, but we >>> did request some then it IS failure. >>> >> >> But that's an issue not related to iothreadid's per se - it's a more >> common general issue that should be a follow-up patch then I think. >> That is not introduced by this set of changes. > > Agreed, this should be done separately. > >> >> Other issues were addressed changed - do you need to see the diffs or an >> updated patch with the diffs already squashed in? > > I'd like to see the fixed hunk of qemuProcessDetectIOThreadPIDs that > parses the reply from the monitor. > diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 66c9321..3def84f 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -2249,13 +2249,18 @@ qemuProcessDetectIOThreadPIDs(virQEMUDriverPtr driver, for (i = 0; i < vm->def->niothreadids; i++) { unsigned int iothread_id; + virDomainIOThreadIDDefPtr iothrid; if (qemuDomainParseIOThreadAlias(iothreads[i]->name, &iothread_id) < 0) goto cleanup; - vm->def->iothreadids[i]->thread_id = iothreads[i]->thread_id; - vm->def->iothreadids[i]->iothread_id = iothread_id; + if (!(iothrid = virDomainIOThreadIDFind(vm->def, iothread_id))) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("iothread %d not found"), iothread_id); + goto cleanup; + } + iothrid->thread_id = iothreads[i]->thread_id; } ret = 0; -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list