Thread (33 messages) 33 messages, 4 authors, 2019-01-21

Re: IXGBE, IOMMU DMAR DRHD handling fault issue

From: Ravi Kerur <hidden>
Date: 2018-02-15 18:27:06

On Thu, Feb 15, 2018 at 2:28 AM, Burakov, Anatoly <anatoly.burakov@intel.com
wrote:
On 14-Feb-18 8:00 PM, Ravi Kerur wrote:
quoted
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.
Great, now we're on the same page.

quoted
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
...
To me this looks like host (i.e. either QEMU or the PF driver) is trying
to do DMA using guest-physical (and not host-physical). I'm not too
well-versed in how QEMU works, but i'm pretty sure that's not supposed to
happen.

Is PF also bound to DPDK, or are you using native Linux ixgbe driver?
Thanks for your help. I cannot use PF with DPDK (vfio-pci), VF interfaces
disappear after it is bound to DPDK. If there is a way to use PF and VF
with DPDK let me know I can try it out. I am not sure how to move forward
on this, Is CPU/IXGBE PF driver playing a role? Following are the versions
I have

lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                56
On-line CPU(s) list:   0-27
Off-line CPU(s) list:  28-55
Thread(s) per core:    1
Core(s) per socket:    14
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 63
Model name:            Intel(R) Xeon(R) CPU E5-2683 v3 @ 2.00GHz
Stepping:              2
CPU MHz:               2500.610
CPU max MHz:           3000.0000
CPU min MHz:           1200.0000
BogoMIPS:              4000.74
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              35840K
NUMA node0 CPU(s):     0-13
NUMA node1 CPU(s):     14-27

# ethtool -i enp4s0f0
driver: ixgbe
version: 5.3.3
firmware-version: 0x800007b8, 1.1018.0
bus-info: 0000:04:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes

Thanks,
Ravi


--
Thanks,
Anatoly
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help