Sorry for just barging in so soon after subscribing to this list, but
the last messages I saw in the archives related to shutting the list
down and I need some help from AMD64 experts. If this is not the correct
venue, please point me to a more appropriate one.
CPU: AMD Phenom II x6 1100T
mobo: Gigabyte GA-990FXA-UD5 (AMD 990FX/SB950 chipset), BIOS version F6
memory: Patriot Viper Extreme 2000MHz (2x4GB, recently upgraded to 4x4GB)
OS: openSUSE 12.1 (3.1.9 kernel)
Searches related to enabling the AMD-Vi say that it has to be enabled in
the BIOS or (I believe it should be AND) have an IVRS table in the ACPI
tables. However the kernel ring buffer reported by dmesg(1) shows the
following (IOMMU=enabled in the BIOS, no kernel args):
[ 0.000000] ACPI: IVRS 00000000bfde0930 000F8 (v01 AMD RD890S 00202031 AMD 00000000)
[ 0.000000] No AGP bridge found
[ 0.000000] Node 0: aperture @ b0000000 size 32 MB
[ 0.000000] Aperture pointing to e820 RAM. Ignoring.
[ 0.000000] Your BIOS doesn't leave a aperture memory hole
[ 0.000000] Please enable the IOMMU option in the BIOS setup
[ 0.000000] This costs you 64 MB of RAM
[ 0.000000] Mapping aperture over 65536 KB of RAM @ b4000000
[ 0.772264] AMD-Vi: Enabling IOMMU at 0000:00:00.2 cap 0x40
[ 0.832267] AMD-Vi: Lazy IO/TLB flushing enabled
[ 0.832270] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[ 0.832272] Placing 64MB software IO TLB between ffff8800bbda0000 - ffff8800bfda0000
[ 0.832274] software IO TLB at phys 0xbbda0000 - 0xbfda0000
So it looks like the AMD-Vi IOMMU has been enabled, and I find what
appears to me to be a properly formatted IVRS table at
/sys/firmware/acpi/tables/IVRS. But it also looks like there have been 2
64MB TLBs created and neither are for the AMD-Vi IOMMU. One appears to
be for the GART and the other appears to be for the SWIOTLB mechansim.
What I don't see (but I expected to see) is a 64MB area allocated for
AMD-Vi IOTLB entries.
I also ran a test where I installed 64-bit Mandriva 2011 as a VM under
KVM. I then measured the boot times, from kernel launch via GRUB to
login screen of that system. In all cases, I performed a cold boot of
both the Physical and Virtual systems. This is what I saw:
Kernel Args Time
In all cases, the "Kernel Args" are the IOMMU-related parameters I
passed to the host machine (openSUSE 12.1) kernel. In cases 1 & 2, the
IOMMU (AMD-Vi) was disabled in the (host machine) BIOS. I case 3, the
IOMMU was enabled in the BIOS. As you can see, the software
implementation was actually faster than the hardware alternatives and
there was no difference between the GART and the AMD-Vi instances. None
of this passes the common sense test, nor is it consistent with results
published by AMD (and others) describing the benefits of the AMD-Vi
technology. This also leads me to believe that something is broken with
the BIOS in my system.
I've tried contacting Gigabyte tech support, but they tell me to get
help from the Linux forums, so nothing will get fixed unless I can tell
them exactly what's wrong and how to fix it.
What else should I be seeing and what shouldn't I be seeing in a
properly functioning system?
Is there a more definitive way to test or confirm which IOMMU mechanism
is actually being used by a running kernel?
If more data is needed, please let me know what you need and the most
appropriate way to provide it.
Ron Widell | Disclaimer, dat-claimer...
r_widell<at>bwig<dot>net | if she's mine, I'll claim 'er.
To unsubscribe, e-mail: opensuse-amd64+unsubscribe(a)opensuse.org
To contact the owner, e-mail: opensuse-amd64+owner(a)opensuse.org