On 05/15/2017 09:33 PM, Ian Zimmerman wrote: > On 2017-05-15 14:33, Corbin Bird wrote: > >> Gigabyte has long been known to ship 'broken for Linux' e820 firmware. >> 'e820' is basically the APG Aperature setup in the firmware. >> Gigabyte kills OR overrides the IOMMU support in the firmware, to setup >> the AGP Aperature. >> >> Closed source / binary video drivers WANT an AGP Aperature. > > So is _that_ what it's all about? Is the default assumption that I run > non-free video drivers? Why? I _never_ use these, and if you bet on me > using them in the future and win the bet, you can probably make a cool > million or two. > >> The kernel wants an IOMMU on x86_64, as an IOMMU. > > But it has one! The GART_IOMMU. It was even added specifically for > Linux, according to kernel.org discussions I remember seeing but can't > locate now. > > I also found [1] , which I think is the clearest and most human-oriented > explanation of this issue, yet. And ... the recommendation is pretty > much the opposite of yours. The ball is in your court, sir. > >>> CONFIG_X86_X2APIC=y > > I did this long ago, and it has no effect - still only one is found, > according to dmesg. As I wrote in the earlier thread. > > Also, the Kconfig help for this option says it does something quite > different. > >>> CONFIG_X86_MPPARSE=y > > Ok, this one I have not set so far. Will read up on it and try, > > [1] > http://bogdan.org.ua/2009/09/30/iommu-this-costs-you-64-mb-of-ram.html >
That link, read the rest of it. It says to leave it alone, let the kernel use it as an IOMMU. ---- I once compiled and tried to run a 64bit kernel with NO IOMMU support, NO virt/vm support, used kernel parameters to kill all forms of IOMMU ... would not run at all ( hard lock / kernel panic ). The error output made it very clear that an IOMMU was REQUIRED for x86_64 ( 64bit ). ---- On AMD, with NO IOMMU kernel parameters, output in '/var/log/dmesg': NOTE : IOMMU is enabled in the UEFI firmware. > [ 0.000000] AGP: Checking aperture... > [ 0.000000] AGP: No AGP bridge found > [ 0.000000] AGP: Node 0: aperture [bus addr 0xb4000000-0xb5ffffff] (32MB) > [ 0.000000] Aperture pointing to e820 RAM. Ignoring. > [ 0.000000] AGP: Your BIOS doesn't leave an aperture memory hole > [ 0.000000] AGP: Please enable the IOMMU option in the BIOS setup > [ 0.000000] AGP: This costs you 64MB of RAM > [ 0.000000] AGP: Mapping aperture over RAM [mem 0xb4000000-0xb7ffffff] > (65536KB) > [ 0.926772] PCI: CLS 64 bytes, default 64 > [ 0.926983] PCI-DMA: Disabling AGP. > [ 0.927215] PCI-DMA: aperture base @ b4000000 size 65536 KB > [ 0.927336] PCI-DMA: using GART IOMMU. > [ 0.927448] PCI-DMA: Reserving 64MB of IOMMU area in the AGP aperture Corbin