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(a)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(a)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