Bug 216055 - ath11k: WCN6855: PCIE-Passthrough to KVM-Guest does not work
Summary: ath11k: WCN6855: PCIE-Passthrough to KVM-Guest does not work
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: network-wireless (show other bugs)
Hardware: All Linux
: P5 normal
Assignee: drivers_network-wireless@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks: 217570
  Show dependency tree
 
Reported: 2022-05-31 10:45 UTC by bugzilla
Modified: 2024-01-14 15:22 UTC (History)
5 users (show)

See Also:
Kernel Version: 5.18.1
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description bugzilla 2022-05-31 10:45:59 UTC
So far I was not able to pass-through a ATH11k/WCN6855 device to a QEMU/KVM-Guest. On the host and guest-side the following messages appear in kernel-log:

Guest-Syslog:
Startup:
Mai 30 19:23:23 wifi kernel: ath11k_pci 0000:05:00.0: BAR 0: assigned [mem 0xfe200000-0xfe3fffff 64bit]
Mai 30 19:23:23 wifi kernel: ath11k_pci 0000:05:00.0: MSI vectors: 1
Mai 30 19:23:23 wifi kernel: ath11k_pci 0000:05:00.0: wcn6855 hw2.0
Mai 30 19:23:23 wifi kernel: mhi mhi0: Requested to power ON
Mai 30 19:23:23 wifi kernel: mhi mhi0: Power on setup success
Mai 30 19:23:24 wifi kernel: mhi mhi0: Wait for device to enter SBL or Mission mode
Mai 30 19:23:24 wifi kernel: ath11k_pci 0000:05:00.0: chip_id 0x2 chip_family 0xb board_id 0xff soc_id 0x400c0200
Mai 30 19:23:24 wifi kernel: ath11k_pci 0000:05:00.0: fw_version 0x11090c35 fw_build_timestamp 2022-04-18 20:23 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.HSP.1.1-03125-QCAHS>
Mai 30 19:23:24 wifi kernel: ath11k_pci 0000:05:00.0: leaving PCI ASPM disabled to avoid MHI M2 problems
Mai 30 19:23:25 wifi kernel: ath11k_pci 0000:05:00.0: failed to receive control response completion, polling..
Mai 30 19:23:26 wifi kernel: ath11k_pci 0000:05:00.0: Service connect timeout
Mai 30 19:23:26 wifi kernel: ath11k_pci 0000:05:00.0: failed to connect to HTT: -110
Mai 30 19:23:36 wifi kernel: ath11k_pci 0000:05:00.0: failed to wait wlan mode request (mode 4): -110
Mai 30 19:23:36 wifi kernel: ath11k_pci 0000:05:00.0: qmi failed to send wlan mode off: -110
Mai 30 19:23:36 wifi kernel: ath11k_pci 0000:05:00.0: failed to start core: -110

Host-Syslog:
Guest-Startup:
Mai 30 19:23:09 server kernel: vfio-pci 0000:02:00.0: vfio_ecap_init: hiding ecap 0x19@0x148
Mai 30 19:23:09 server kernel: vfio-pci 0000:02:00.0: vfio_ecap_init: hiding ecap 0x1e@0x1ec
Mai 30 19:23:25 server kernel: DMAR: DRHD: handling fault status reg 2
Mai 30 19:23:25 server kernel: DMAR: [INTR-REMAP] Request device [02:00.0] fault index 0x0 [fault reason 0x25] Blocked a compatibility format interrupt request
Mai 30 19:23:25 server kernel: DMAR: [INTR-REMAP] Request device [02:00.0] fault index 0x0 [fault reason 0x25] Blocked a compatibility format interrupt request
Mai 30 19:23:25 server kernel: DMAR: DRHD: handling fault status reg 2
Mai 30 19:23:25 server kernel: DMAR: [INTR-REMAP] Request device [02:00.0] fault index 0x0 [fault reason 0x25] Blocked a compatibility format interrupt request
Mai 30 19:23:25 server kernel: DMAR: DRHD: handling fault status reg 2
Mai 30 19:23:25 server kernel: DMAR: [INTR-REMAP] Request device [02:00.0] fault index 0x0 [fault reason 0x25] Blocked a compatibility format interrupt request
Mai 30 19:23:25 server kernel: DMAR: [INTR-REMAP] Request device [02:00.0] fault index 0x0 [fault reason 0x25] Blocked a compatibility format interrupt request

Guest-Shutdown:
Mai 30 19:29:38 server kernel: dmar_fault: 1957 callbacks suppressed
Mai 30 19:29:38 server kernel: DMAR: DRHD: handling fault status reg 2
Mai 30 19:29:38 server kernel: DMAR: [INTR-REMAP] Request device [02:00.0] fault index 0x82 [fault reason 0x22] Present field in the IRTE entry is clear
Mai 30 19:29:38 server kernel: DMAR: DRHD: handling fault status reg 2
Mai 30 19:29:38 server kernel: DMAR: [INTR-REMAP] Request device [02:00.0] fault index 0x82 [fault reason 0x22] Present field in the IRTE entry is clearfault index 0x82 [fault reason 0x2>
Comment 1 ftyg 2023-05-26 09:01:50 UTC
Having exactly the same issue with my setup. Using kernel 6.2.15 and the bug still exists.
Comment 2 Cristian C 2023-05-30 10:11:02 UTC
I just tested also with an Sparklan WNFQ-269AX(BT) wifi module (WCN6856 chipset) on a Proxmox 7.4 host and I cannot passthrough the wifi module from the Host to the Guest VM.
The guest VM was running ArchLinux with kernel 6.2.13. I'm using the latest available firmware for this chipset.

lspci -vnn -s 02:00.0
02:00.0 Network controller [0280]: Qualcomm Device [17cb:1103] (rev 01)
        Subsystem: Lite-On Communications Inc Device [11ad:a85d]
        Flags: bus master, fast devsel, latency 0, IRQ 135, IOMMU group 14
        Memory at 7fc00000 (64-bit, non-prefetchable) [size=2M]
        Capabilities: [40] Power Management version 3
        Capabilities: [50] MSI: Enable+ Count=1/32 Maskable+ 64bit-
        Capabilities: [70] Express Endpoint, MSI 00
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [148] Secondary PCI Express
        Capabilities: [158] Transaction Processing Hints
        Capabilities: [1e4] Latency Tolerance Reporting
        Capabilities: [1ec] L1 PM Substates
        Kernel driver in use: vfio-pci
        Kernel modules: ath11k_pci

Dmesg output from the Proxmox host:

dmesg | grep -E 'ath11|DMAR|vfio'
[    0.018957] ACPI: DMAR 0x00000000746BE000 000088 (v02 INTEL  EDK2     00000002      01000013)
[    0.018989] ACPI: Reserving DMAR table memory at [mem 0x746be000-0x746be087]
[    0.077930] DMAR: IOMMU enabled
[    0.193626] DMAR: Host address width 39
[    0.193629] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.193638] DMAR: dmar0: reg_base_addr fed90000 ver 4:0 cap 1c0000c40660462 ecap 49e2ff0505e
[    0.193643] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.193649] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
[    0.193654] DMAR: RMRR base: 0x0000007b800000 end: 0x0000007fbfffff
[    0.193659] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.193662] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.193664] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.195426] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    0.376520] pci 0000:00:02.0: DMAR: Skip IOMMU disabling for graphics
[    0.457749] DMAR: No ATSR found
[    0.457751] DMAR: No SATC found
[    0.457753] DMAR: IOMMU feature fl1gp_support inconsistent
[    0.457754] DMAR: IOMMU feature pgsel_inv inconsistent
[    0.457756] DMAR: IOMMU feature nwfs inconsistent
[    0.457758] DMAR: IOMMU feature pds inconsistent
[    0.457760] DMAR: IOMMU feature eafs inconsistent
[    0.457761] DMAR: IOMMU feature prs inconsistent
[    0.457763] DMAR: IOMMU feature nest inconsistent
[    0.457764] DMAR: IOMMU feature mts inconsistent
[    0.457766] DMAR: IOMMU feature sc_support inconsistent
[    0.457768] DMAR: IOMMU feature dev_iotlb_support inconsistent
[    0.457770] DMAR: dmar0: Using Queued invalidation
[    0.457775] DMAR: dmar1: Using Queued invalidation
[    0.458251] DMAR: Intel(R) Virtualization Technology for Directed I/O
[    4.407659] ath11k_pci 0000:02:00.0: BAR 0: assigned [mem 0x7fc00000-0x7fdfffff 64bit]
[    4.407685] ath11k_pci 0000:02:00.0: enabling device (0000 -> 0002)
[    4.408857] ath11k_pci 0000:02:00.0: MSI vectors: 32
[    4.408866] ath11k_pci 0000:02:00.0: wcn6855 hw2.1
[    5.311774] ath11k_pci 0000:02:00.0: chip_id 0x12 chip_family 0xb board_id 0xff soc_id 0x400c1211
[    5.311835] ath11k_pci 0000:02:00.0: fw_version 0x110b196e fw_build_timestamp 2022-12-22 12:54 fw_build_id WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23
[    5.702364] ath11k_pci 0000:02:00.0 wlp2s0: renamed from wlan0
[   15.776080] vfio-pci 0000:03:00.0: vfio_ecap_init: hiding ecap 0x1f@0x1f0
[   15.776130] vfio-pci 0000:03:00.0: vfio_ecap_init: hiding ecap 0x1e@0x1e0
[   29.667558] vfio-pci 0000:02:00.0: vfio_ecap_init: hiding ecap 0x19@0x148
[   29.667605] vfio-pci 0000:02:00.0: vfio_ecap_init: hiding ecap 0x1e@0x1ec
[   68.104354] DMAR: DRHD: handling fault status reg 2
[   68.104387] DMAR: [INTR-REMAP] Request device [02:00.0] fault index 0x0 [fault reason 0x25] Blocked a compatibility format interrupt request
[   68.108626] DMAR: DRHD: handling fault status reg 2
[   68.108649] DMAR: [INTR-REMAP] Request device [02:00.0] fault index 0x0 [fault reason 0x25] Blocked a compatibility format interrupt request
[   68.110320] DMAR: DRHD: handling fault status reg 2
[   68.110336] DMAR: [INTR-REMAP] Request device [02:00.0] fault index 0x0 [fault reason 0x25] Blocked a compatibility format interrupt request
[   68.112892] DMAR: DRHD: handling fault status reg 2

Dmesg output from the Archlinux guest VM

dmesg | grep ath11     
[   15.549547] ath11k_pci 0000:01:00.0: BAR 0: assigned [mem 0xfe800000-0xfe9fffff 64bit]
[   15.552619] ath11k_pci 0000:01:00.0: MSI vectors: 1
[   15.552822] ath11k_pci 0000:01:00.0: wcn6855 hw2.1
[   17.146865] ath11k_pci 0000:01:00.0: chip_id 0x12 chip_family 0xb board_id 0xff soc_id 0x400c1211
[   17.146872] ath11k_pci 0000:01:00.0: fw_version 0x110b196e fw_build_timestamp 2022-12-22 12:54 fw_build_id WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23
[   17.337270] ath11k_pci 0000:01:00.0: leaving PCI ASPM disabled to avoid MHI M2 problems
[   18.346531] ath11k_pci 0000:01:00.0: failed to receive control response completion, polling..
[   19.359874] ath11k_pci 0000:01:00.0: Service connect timeout
[   19.360147] ath11k_pci 0000:01:00.0: failed to connect to HTT: -110
[   19.360727] ath11k_pci 0000:01:00.0: failed to start core: -110
[   19.569855] ath11k_pci 0000:01:00.0: ignore reset dev flags 0x4000
[   29.546594] ath11k_pci 0000:01:00.0: failed to wait wlan mode request (mode 4): -110
[   29.546605] ath11k_pci 0000:01:00.0: qmi failed to send wlan mode off: -110
Comment 5 Kalle Valo 2024-01-14 15:22:03 UTC
Baochen's analysis and a hack to workaround it:

https://lore.kernel.org/linux-wireless/3d22a730-aee5-4f2a-9ddc-b4b5bd4d62fe@quicinc.com/

Test results very welcome.

Note You need to log in before you can comment on or make changes to this bug.