Re: DMAR: [DMA Read NO_PASID] Request device [0b:00.0] fault addr 0xffffe000 [fault reason 0x06] PTE Read access is not set

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Major,

Thanks for the report!

On Wed, Dec 21, 2022 at 08:38:46PM +0530, Major Saheb wrote:
> I have an ubuntu guest running on kvm , and I am passing it 10 qemu
> emulated nvme drives
>     <iommu model='intel'>
>       <driver intremap='on' eim='on'/>
>     </iommu>
> <qemu:arg value='pcie-root-port,id=pcie-root-port%d,slot=%d'/>
> <qemu:arg value='nvme,drive=NVME%d,serial=%s_%d,id=NVME%d,bus=pcie-root-port%d'/>
> 
> kernel
> Linux node-1 5.15.0-56-generic #62-Ubuntu SMP ----- x86_64 x86_64
> x86_64 GNU/Linux
> 
> kernel command line
> intel_iommu=on
> 
> I have attached these drives to vfio-pcie.
> 
> when I try to send IO commands to these drives VIA a userspace nvme
> driver using VFIO I get
> [ 1474.752590] DMAR: DRHD: handling fault status reg 2
> [ 1474.754463] DMAR: [DMA Read NO_PASID] Request device [0b:00.0]
> fault addr 0xffffe000 [fault reason 0x06] PTE Read access is not set
> 
> Can someone explain to me what's happening here ?

I'm not an IOMMU expert, but I think the device (0b:00.0, I assume an
nvme device) did a DMA read to 0xffffe000 (which looks suspiciously
like a null pointer (-8192 off a null pointer)), and the IOMMU had no
mapping for that address.

Can you point us to the userspace nvme driver?  I'm not a VFIO expert
either, but I assume it uses something like a VFIO_IOMMU_MAP_DMA ioctl
to map buffers and get IOVAs to give to the device?

Can you collect a dmesg log and output of "sudo lspci -vv" for your
guest?  Is this something that worked in the past and broke on a newer
kernel?  It looks like you're using a 5.15 kernel; have you tried any
newer kernels?

Bjorn



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux