[libvirt] [PATCH REPOST 5/7] conf: Add support for virtio-scsi iothreads
John Ferlan
jferlan at redhat.com
Tue May 3 17:58:09 UTC 2016
[...]
>>>> + if (iothread) {
>>>> + if (def->model != VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI) {
>>>> + virReportError(VIR_ERR_XML_ERROR,
>>>> + _("'iothread' attribute only supported for "
>>>> + "controller model '%s'"),
>>>> + virDomainControllerModelSCSITypeToString(VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI));
>>>> + goto error;
>>>> + }
>>>
>>> I think this particular check should be moved to one of the generic PostParse
>>> validation functions, since it's not specific to parse time.
>>>
>>
>> I guess I was under the impression that post parse callbacks were to be
>> used when we didn't have all the information about a relationship
>> between say a disk and controller.
>>
>
> For driver specific bits, maybe. But in general I think as much validation as
> possible should move out of the XML parsing routines, and into the generic
> PostParse function, so drivers that manually populate virDomainDef hit the
> checks as well.
>
OK, reasonable - I'll move the def->model part...
>> In this case, the attribute is only supported on the controller that has
>> been defined using "virtio-scsi" or "virtio-ccw". Since those weren't
>> "discover-able" based on some other relationship, thus checking at parse
>> time was better.
>>
>> IDC either way, but I think (without too much digging), that would mean
>> a change to qemuDomainDeviceDefPostParse in the following if:
>>
>
> I would put it in generic code instead. Roughly what
> virDomainDefPostParseTimer does, but probably tied into the device iteration.
>
> Really the check being in done in DomainDefParse* isn't impactful in this
> case, but it's a pattern we should try to break out of IMO
>
True - a lot easier to "decide" in the parse code where the check would
go considering other attributes that can be found with <driver> are
checked inline... Chasing the post parse callbacks and deciding where
is the "best" place for a check just requires more thought.
I'll add a check virDomainDeviceDefPostParseInternal since it's a device
specific callback check as opposed to a domain def check.
I'll push 1-4 since they're ACK'd and repost 5-7 in a v2 shortly.
Tks -
John
More information about the libvir-list
mailing list