Re: [PATCH] x86, aperture: Check for GART before accessing GART registers

Ingo Molnar
2015-04-02T16:06:43Z

* Aravind Gopalakrishnan <aravind.gopalakrishnan@amd.com> wrote:

> On 4/2/2015 5:01 AM, Ingo Molnar wrote:
> >* Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com> wrote:
> >
> >>GART registers are not present in newer processors (Fam15h, Model 10h
> >>and later). So, avoid accesses to GART registers in PCI config
> >>space by returning early in early_gart_iommu_check() and
> >>gart_iommu_hole_init() if GART is not available.
> >In what fashion did this problem manifest itself on real systems?
> >
> >
>
> This code doesn't break on existing processors.
> There are some other side effects though..
>
> We get "AGP:" messages on kernel logs like this-
> [ 0.000000] AGP: Node 0: aperture [bus addr 0x00000000-0x01ffffff] (32MB)
> [ 0.000000] AGP: Your BIOS doesn't leave a 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 0xd4000000-0xd7ffffff]
> (65536KB)
>
> These are just noise on processors which have no GART.

agreed.

> We can avoid calling allocate_aperture() and would not have to
> memblock_reserve() 64MB of RAM.
> Also, we can avoid having to loop through all PCI buses, devices (twice)
> searching for AGP bridge if we bail out early.

Makes sense. Mind adding this info to the changelog and resend?

Thanks,

Ingo