[dpdk-dev] IXGBE, IOMMU DMAR DRHD handling fault issue
Ravi Kerur
rkerur at gmail.com
Wed Feb 14 21:00:59 CET 2018
On Tue, Feb 13, 2018 at 6:31 AM, Burakov, Anatoly <anatoly.burakov at intel.com
> wrote:
> On 12-Feb-18 10:00 PM, Ravi Kerur wrote:
>
>>
>> Let me just give you what has been tested and working/nonworking
>> scenarios. Some of your questions might get answered as well.
>> Test bed is very simple with 2 VF's created under IXGBE PF on
>> host with one VF interface added to ovs-bridge on host and
>> another VF interface given to guest. Test connectivity between
>> VF's via ping.
>>
>> Host and guest -- Kernel 4.9
>> Host -- Qemu 2.11.50 (tried both released 2.11 and tip of the
>> git (2.11.50))
>> DPDK -- 17.05.1 on host and guest
>> Host and guest -- booted with GRUB intel_iommu=on (which enables
>> IOMMU). Have tried with "iommu=on and intel_iommu=on" as well,
>> but iommu=on is not needed when intel_iommu=on is set.
>>
>> Test-scenario-1: Host -- ixgbe_vf driver, Guest ixgbe_vf driver
>> ping works
>> Test-scenario-2: Host -- DPDK vfio-pci driver, Guest ixgbe_vf
>> driver ping works
>> Test-scenario-3: Host -- DPDK vfio-pci driver, Guest DPDK
>> vfio-pci driver, DMAR errors seen on host, ping doesn't work
>>
>>
>> OK, that makes it clearer, thanks. Does the third scenario work in
>> other DPDK versions?
>>
>>
>> No. Tried 16.11 same issue on guest and works fine on host.
>>
>>
>> So now we've moved from "this worked on 16.11" to "this never worked".
>
> It would be good to see output of rte_dump_physmem_layout() on both host
> and guest, and check which address triggers the DMAR error (i.e. if the
> physical address is present in mappings for either DPDK process).
>
> --
>
Earlier I was focusing only on DMAR errors and I might have said 'it
worked' when I didn't notice them on host when dpdk was started on guest.
When trying to send packets out of that interface from guest I did see DMAR
errors. I am attaching information you requested. I have enabled
log-level=8 and files contain dpdk EAL/PMD logs as well.
Snippets below
on host, DMAR fault address from dmesg
[351576.998109] DMAR: DRHD: handling fault status reg 702
[351576.998113] DMAR: [DMA Read] Request device [04:10.0] fault addr
257617000 [fault reason 06] PTE Read access is not set
on guest (dump phys_mem_layout)
Segment 235: phys:0x257600000, len:2097152, virt:0x7fce87e00000,
socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0
...
PMD: ixgbe_dev_rx_queue_setup(): sw_ring=0x7fce87e0f4c0
sw_sc_ring=0x7fce87e07380 hw_ring=0x7fce87e17600 dma_addr=0x257617600
PMD: ixgbe_dev_rx_queue_setup(): sw_ring=0x7fce89c67d40
sw_sc_ring=0x7fce89c5fc00 hw_ring=0x7fce89c6fe80 dma_addr=0x25406fe80
...
Thanks,
Ravi
> Thanks,
> Anatoly
>
More information about the dev
mailing list