[libvirt] [PATCH v3 26/30] qemu_monitor_text: Catch IOMMU/VFIO related errors in qemuMonitorTextAddDrive
Michal Privoznik
mprivozn at redhat.com
Thu Dec 12 09:19:16 UTC 2019
On 12/10/19 9:50 PM, Cole Robinson wrote:
> On 12/2/19 9:26 AM, Michal Privoznik wrote:
>> Because this is a HMP we're dealing with, there is nothing like
>> class of reply message, so we have to do some string comparison
>> to guess if the command fails. Well, with NVMe disks whole new
>> class of errors comes to play because qemu needs to initialize
>> IOMMU and VFIO for them. You can see all the messages it may
>> produce in qemu_vfio_init_pci().
>>
>> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
>> ---
>> src/qemu/qemu_monitor_text.c | 7 +++++++
>> 1 file changed, 7 insertions(+)
>>
>> diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c
>> index 9054682d60..6948a5bf90 100644
>> --- a/src/qemu/qemu_monitor_text.c
>> +++ b/src/qemu/qemu_monitor_text.c
>> @@ -75,6 +75,13 @@ int qemuMonitorTextAddDrive(qemuMonitorPtr mon,
>> goto cleanup;
>> }
>>
>> + if (strstr(reply, "IOMMU") ||
>> + strstr(reply, "VFIO")) {
>> + virReportError(VIR_ERR_OPERATION_FAILED, "%s",
>> + reply);
>> + goto cleanup;
>> + }
>> +
>> ret = 0;
>>
>> cleanup:
>>
>
> For the code:
>
> Reviewed-by: Cole Robinson <crobinso at redhat.com>
>
> Does the blockdev infrastructure have magic that turns the Props into a
> drive string? I don't see any -drive examples in the test output
Blockdev usues -device + -blockdev pair and obsoletes -drive. For instance:
libvirt.git $ grep "\-drive" $(git grep -l "\-blockdev" --
tests/qemuxml2argvdata/)
Neither of -blockdev files has -drive.
Michal
More information about the libvir-list
mailing list