Note: This bug is displayed in read-only format because
the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
*** Bug 1539256 has been marked as a duplicate of this bug. ***
Comment 4Yvugenfi@redhat.com
2018-02-14 16:01:10 UTC
Are you sure the problem is with iommu driver? It looks from the screenshot that Windows is looking for the storage driver. Did you try to install the virtio-block driver from CD?
Comment 5Yvugenfi@redhat.com
2018-02-21 14:18:12 UTC
The failure is due to iommu_platform=on command line flag that enables the usage of VIRTIO_F_IOMMU_PLATFORM virtio device flag. virtio-win drivers don't acknowledge VIRTIO_F_IOMMU_PLATFORM.
(In reply to Yan Vugenfirer from comment #5)
> The failure is due to iommu_platform=on command line flag that enables the
> usage of VIRTIO_F_IOMMU_PLATFORM virtio device flag. virtio-win drivers
> don't acknowledge VIRTIO_F_IOMMU_PLATFORM.
I think it fails because of below check in virtio_validate_features:
static int virtio_validate_features(VirtIODevice *vdev)
{
VirtioDeviceClass *k = VIRTIO_DEVICE_GET_CLASS(vdev);
if (virtio_host_has_feature(vdev, VIRTIO_F_IOMMU_PLATFORM) &&
!virtio_vdev_has_feature(vdev, VIRTIO_F_IOMMU_PLATFORM)) {
return -EFAULT;
}
if (k->validate_features) {
return k->validate_features(vdev);
} else {
return 0;
}
}
This check was added by Jason:
commit 8607f5c3072caeebbe0217df28651fffd3a79fd9
Author: Jason Wang <jasowang>
Date: Fri Dec 30 18:09:10 2016 +0800
virtio: convert to use DMA api
Currently, all virtio devices bypass IOMMU completely. This is because
address_space_memory is assumed and used during DMA emulation. This
patch converts the virtio core API to use DMA API. This idea is
- introducing a new transport specific helper to query the dma address
space. (only pci version is implemented).
- query and use this address space during virtio device guest memory
accessing when iommu platform (VIRTIO_F_IOMMU_PLATFORM) was enabled
for this device.
Cc: Michael S. Tsirkin <mst>
Cc: Stefan Hajnoczi <stefanha>
Cc: Kevin Wolf <kwolf>
Cc: Amit Shah <amit.shah>
Cc: Paolo Bonzini <pbonzini>
Cc: qemu-block
Signed-off-by: Jason Wang <jasowang>
Reviewed-by: Michael S. Tsirkin <mst>
Signed-off-by: Michael S. Tsirkin <mst>
Adding Michael & Jason in cc:
Regards,
Maxime
Comment 7Yvugenfi@redhat.com
2018-03-20 13:25:35 UTC
Hi Yan,
Similar confuse with the bug 1539256(for vioscsi), I tested this issue(for viostor) with virtio-win-prewhql-150 on win2012-r2 and win2016.
on win2016, cannot reproduce this issue.
on win2012-r2, can reproduce this issue.
Could please help to confirm if the virtio-win for iommu feature only supported on win2016 and win10~
Thanks a lot~
Comment 9Yvugenfi@redhat.com
2018-04-17 10:58:10 UTC
(In reply to Peixiu Hou from comment #8)
> Hi Yan,
>
> Similar confuse with the bug 1539256(for vioscsi), I tested this issue(for
> viostor) with virtio-win-prewhql-150 on win2012-r2 and win2016.
>
> on win2016, cannot reproduce this issue.
> on win2012-r2, can reproduce this issue.
>
> Could please help to confirm if the virtio-win for iommu feature only
> supported on win2016 and win10~
>
>
> Thanks a lot~
Hi,
Yes - it is supported only for Windows 10, Windows 2016 and up.
Best regards.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://access.redhat.com/errata/RHBA-2018:3413
Created attachment 1375556 [details] install pic Description of problem: virtio-win doesn't contain driver of iommu Version-Release number of selected component (if applicable): kernel-3.10.0-824.el7.x86_64 qemu-kvm-rhev-2.10.0-13.el7.x86_64 seabios-bin-1.11.0-1.el7.noarch virtio-win-prewhql-0.1-145.iso How reproducible: 3/3 Steps to Reproduce: 1. Install win2016 guest through qemu command line [1] Actual results: No drivers found Expected results: Install guest successfully Additional info: Hit the issue with virtio-win-1.9.3-1.el7.iso [1] /usr/libexec/qemu-kvm \ -M q35,accel=kvm,kernel-irqchip=split \ -device intel-iommu,intremap=on,caching-mode=on,eim=on,device-iotlb=on \ -cpu Haswell-noTSX \ -nodefaults -rtc base=utc \ -m 4G \ -smp 4,sockets=4,cores=1,threads=1 \ -enable-kvm \ -uuid 990ea161-6b67-47b2-b803-19fb01d30d12 \ -k en-us \ -nodefaults \ -serial unix:/tmp/serial0,server,nowait \ -debugcon file:/home/sriov/ovmf.log \ -global isa-debugcon.iobase=0x402 \ -boot menu=on \ -qmp tcp:0:6667,server,nowait \ -usb \ -device usb-tablet \ -vga qxl \ -global driver=cfi.pflash01,property=secure,value=on \ -device pcie-root-port,bus=pcie.0,id=root0,multifunction=on,chassis=1,addr=0xa.0 \ -drive file=/home/sriov/win2016-new.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,werror=stop,rerror=stop \ -device virtio-blk-pci,drive=drive-virtio-disk0,id=virtio-disk0,bus=root0,iommu_platform=on,ats=on \ -device pcie-root-port,bus=pcie.0,id=root1,chassis=11,addr=0xa.1 \ -device pcie-root-port,bus=pcie.0,id=root5,slot=5 \ -device x3130-upstream,bus=root5,id=upstream \ -device xio3130-downstream,bus=upstream,id=downstream0,chassis=2 \ -device x3130-upstream,bus=downstream0,id=upstream1 \ -device xio3130-downstream,bus=upstream,id=downstream1,chassis=3 \ -device pcie-root-port,bus=pcie.0,id=root6,chassis=15,addr=0xa.5 \ -device ahci,id=ahci1 \ -drive file=/home/sriov/virtio-win-prewhql-0.1-145.iso,if=none,id=drive-virtio-disk3,format=raw \ -device ide-cd,unit=0,drive=drive-virtio-disk3,id=virtio-disk3,bus=ahci1.0 \ -cdrom en_windows_server_2016_x64_dvd_9718492.iso \ -monitor stdio \ -vnc :1 \