Re: AGP and PAT (induced?) problem (on AMD family 6)

From: Rene Herman
Date: Wed Aug 20 2008 - 10:26:46 EST


On 20-08-08 12:50, Rene Herman wrote:

On 20-08-08 12:04, Ingo Molnar wrote:

* Venki Pallipadi <venkatesh.pallipadi@xxxxxxxxx> wrote:

I'd really like a reply from the AGP or PAT side right about now.
Hmm. Looks like there are more than 16000 entries in the PAT list!

hm, btw., why is that?

Because 64M of AGP memory divided by 4K pages is 16K. That is, the underlying problem seems to be AGP drivers using order 0 allocations. I'm looking.

Do note also that this means that Venki's change would not constitite a correct/final fix. Sure, caching the last entry speeds up traversing a 16K entry list but the issue is that there shouldn't be a 16K entry list. Through AGP, or maybe even by coalescing entries in the PAT list if that's at all possible (I guess it's not really).

Even if such a more fundamental fix isn't (easily) available, the PAT code already comments that the list, which is sorted by ->start value, is expected to be short, and should be turned into an rbtree if it isn't which might be slightly less of a bandaid.

Dave Airlie (as the MAINTAINERS entry) can't be arsed to answer email it seems so I've added Dave Jones for a possible comment from the AGP side.
If I'm reading this right upto now, still many AGP driver (among which my amd-k7-agp) are affected.

This was based on a wrong reading; I was looking at the GATT allocation.

I'm giving up looking until someone can tell me whether or not those 16K entries are expected though. I have just one AGP card in a PAT capable machine.

How many entries in /debug/x86/pat_memtype_list are there on other AGP systems with Option "AGPSize" "64" in their xorg.conf:"Device" section (and their AGP aperture set to 64M or bigger in the BIOS)?

Rene.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/