On Mon, Apr 01, 2019 at 09:12:38AM +0000, Elijah Shakkour wrote: > > > > -----Original Message----- > > From: Peter Xu <pet...@redhat.com> > > Sent: Monday, April 1, 2019 5:47 AM > > To: Elijah Shakkour <elija...@mellanox.com> > > Cc: Knut Omang <knut.om...@oracle.com>; Michael S. Tsirkin > > <m...@redhat.com>; Alex Williamson <alex.william...@redhat.com>; > > Marcel Apfelbaum <marcel.apfelb...@gmail.com>; Stefan Hajnoczi > > <stefa...@gmail.com>; qemu-devel@nongnu.org > > Subject: Re: QEMU and vIOMMU support for emulated VF passthrough to > > nested (L2) VM > > > > On Sun, Mar 31, 2019 at 11:15:00AM +0000, Elijah Shakkour wrote: > > > > [...] > > > > > I didn't have DMA nor MMIO read/write working with my old command > > line. > > > But, when I removed all CPU flags and only provided "-cpu host", I see > > > that > > MMIO works. > > > Still, DMA read/write from emulated device doesn't work for VF. For > > example: > > > Driver provides me a buffer pointer through MMIO write, this address > > (pointer) is GPA of L2, and when I try to call pci_dma_read() with this > > address > > I get: > > > " > > > Unassigned mem read 0000000000000000 > > > " > > > > I don't know where this error log was dumped but if it's during DMA then I > > agree it can probably be related to vIOMMU. > > > > This log is dumped from: > memory.c: unassigned_mem_read() > > > > As I said, my problem now is in translation of L2 GPA provided by driver, > > when I call DMA read/write for this address from VF. > > > Any insights? > > > > I just noticed that you were using QEMU 2.12 [1]. If that's the case, > > please > > rebase to the latest QEMU, at least >=3.0 because there's major refactor of > > the shadow logic during 3.0 devel cycle AFAICT. > > > > Rebased to QEMU 3.1 > Now I see the address I'm trying to read from in log but still same error: > " > Unassigned mem read 00000000f0481000 > " > What do you suggest?
Would you please answer the questions that Knut asked? Is it working for L1 guest? How about PF? You can also try to enable VT-d device log by appending: -trace enable="vtd_*" In case it dumps anything useful for you. -- Peter Xu