Re: Query on IOMMU

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

 



* Prasad Joshi (P.G.Joshi@xxxxxxxxxxxxxxxxxxxxx) wrote:
> I have few (may be stupid) questions on this 
> 
> > From: Chris Wright [chrisw@xxxxxxxxxxxx]
> > That's the issue.  The IOMMU has a set of page tables for each DeviceID.
> > For most devices, the DeviceID is the same as the Bus:Dev.Func (the PCI
> > address) of the device.  But this does not always work.  One example is
> > when a device is behind a PCI-to-PCI Bridge.  In that case, the device
> > memory read/write requests (attempts to DMA) will appear as if they came
> > from the bridge.
> 
> Oh I see, I can understand this part.
> 
> > 
> > 00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge
> >         Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
> > 
> > That's the bridge that sits between your e100 and the IOMMU.
> 
> Can you please explain how did you make out the device 01:05:0 is behind the bridge?
> 01:05.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 0c)

A PCI bridge has config space that states what busses are behind it.
The bridge at 00:14.4 is a bridge between bus 0 and bus 1, you can tell
from this line:

         Bus: primary=00, secondary=01, subordinate=01, sec-latency=64

There are no other devices behind that bridge (so theoretically you could
safely use it for device assignment).

> If you can explain this, I will try to find if the other network card
> also sits behind the bridge or not.

The other network interface card you have (03:00.0) is a PCIe device,
it's upstream is the PCIe port.  It should not have the aliasing issue,
and should work.

00:06.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI express gpp port F)
        Bus: primary=00, secondary=03, subordinate=03, sec-latency=0

03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd.  RTL8111/8168B PCI Express Gigabit Ethernet controller

> I would like to know the same thing
> for the PCIe GPU card connected to my machine. If GPU card is also sitting
> behind the bridge then the hardware may be useless for the project. :(

The GPU is also in a PCIe port, here:

00:02.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI express gpp port B)
        Bus: primary=00, secondary=06, subordinate=06, sec-latency=0

06:00.0 VGA compatible controller: nVidia Corporation G86 [Quadro NVS 290]

> Please explain how to find out this information.

Using lspci -t you can see the topology pretty easily.  Otherwise you
can sift through lspci output to find the topology.

thanks,
-chris
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux