
Do you have some simple test program that I can run locally?
Yeah. Sorry for the delay; took me a while to find time to clean it up for public consumption. It's only 8k so I attached it; I hope that doesn't cheese anybody off (and survives the listware). Otherwise, it can be grabbed from here: http://viz.cacr.caltech.edu/dl/fbtest-0.1.tar.bz2 Edit the Makefile to point at your kernel source tree (e.g. /usr/src/linux), type make and then insmod the resulting fbtest.o. It's a module that ALWAYS fails to install, but does a benchmark along the way. You should use it with an ATI video card in the box, but any Radeon card >=8500 should work (note that the 8500DV did not support fast writes). It works for 2.4.20 and 2.4.21, and perhaps others. What you're looking for is the write-combined/fast-write pair, which for a 4x AGP card on other machines achieves 1 GB/s bandwidth, and on the S2885 achieves a sad, depressing 25 MB/s. AGP Pro110 and 8x AGP cards should see even better performance.
linux:~ # cat /proc/mtrr reg00: base=0xc0000000 (3072MB), size=1024MB: uncachable, count=1 reg01: base=0xbe000000 (3040MB), size= 32MB: uncachable, count=1
Yes, this looks strange. How much memory do you have?
8 x 1GB -- I also observe the "missing 1GB" problem that Mike Frenz mentions. (Mike: did you ever get that patch from AMI via Tyan? Any more word on this MTRR strangeness?) Anyway, following are some dmesg excerpts from the framebuffer write bandwidth tester on a 760MPX box and a S2885ANRF. I hope these are helpful. The goal is to to fast-write/write-combining and get at least 1GB/s write bandwidth. -mcq --- 2.4.21 on a 760MPX board with Radeon 9100 --- Default: 63 MiB/s, write-combining: 266 MiB/s, fast-wr/wr-comb: 1000 MiB/s Linux agpgart interface v0.99 (c) Jeff Hartmann agpgart: Maximum main memory to use for agp memory: 3459M agpgart: Detected AMD 760MP chipset agpgart: AGP aperture is 64M @ 0xec000000 fbtest: Framebuffer bandwidth tester v0.1 fbtest: mapped framebuffer at 0xf8a32000 for 67108864 bytes fbtest: default AGP/MTRR: framebuffer write bandwidth 64 MiB/s fbtest: default AGP/write-combining: framebuffer write bandwidth 266 MiB/s fbtest: Card has AGP capability: 2f000217 00000200 fbtest: Bridge has AGP capability: 0f000217 00000300 fbtest: AGP mode is 4x SidebandAddressing=enabled FastWrites=enabled fbtest: AGP fast-write: framebuffer write bandwidth 63 MiB/s fbtest: AGP fast writes/write-combining: framebuffer write bandwidth 1000 MiB/s fbtest: AGP and MTRR status restored; fbtest done. --- 2.4.20 on a 760MPX board with Radeon 8500DV --- Default: 63 MiB/s, write-combining: 266 MiB/s fbtest: Framebuffer bandwidth tester v0.1 fbtest: mapped framebuffer at 0xf8a0c000 for 67108864 bytes fbtest: default AGP/MTRR: framebuffer write bandwidth 63 MiB/s fbtest: default AGP/write-combining: framebuffer write bandwidth 266 MiB/s fbtest: Card has AGP capability: 2f000207 0f000304 fbtest: Bridge has AGP capability: 0f000217 00000304 fbtest: AGP mode is 4x SidebandAddressing=enabled FastWrites=disabled fbtest: can't enable AGP fast write: card must be Radeon >=8500 and not 8500DV fbtest: AGP and MTRR status restored; fbtest done. --- BROKEN: 2.4.21-139 on S2885ANRF with Radeon X1 --- Default: 19 MiB/s, fast-writes: 25 MiB/s Linux agpgart interface v0.99 (c) Jeff Hartmann agpgart: Maximum main memory to use for agp memory: 7956M agpgart: Detected AMD 8151 chipset agpgart: AGP aperture is 256M @ 0xe0000000 PCI-DMA: Reserving 128MB of IOMMU area in the AGP aperture ... fbtest: Framebuffer bandwidth tester v0.1 fbtest: mapped framebuffer at 0xffffff0000229000 for 268435456 bytes fbtest: default AGP/MTRR: framebuffer write bandwidth 19 MiB/s mtrr: type mismatch for d0000000,10000000 old: uncachable new: write-combining fbtest: WARNING: failed to set wrtite-combining in MTRR fbtest: Card has AGP capability: ff00021b 00000200 fbtest: Bridge has AGP capability: 1f000b7b 00000200 AGP: Found AGPv3 capable device at 4:0:0 AGP: Found AGPv3 capable device at 5:0:0 AGP: Enough AGPv3 devices found, setting up... AGP: Setting up AGPv3 capable device at 4:0:0 AGP: Setting up AGPv3 capable device at 5:0:0 fbtest: AGP mode is 2x SidebandAddressing=enabled FastWrites=enabled fbtest: AGP fast-write: framebuffer write bandwidth 25 MiB/s mtrr: type mismatch for d0000000,10000000 old: uncachable new: write-combining fbtest: WARNING: failed to set wrtite-combining in MTRR AGP: Found AGPv3 capable device at 4:0:0 AGP: Found AGPv3 capable device at 5:0:0 AGP: Enough AGPv3 devices found, setting up... AGP: Setting up AGPv3 capable device at 4:0:0 AGP: Setting up AGPv3 capable device at 5:0:0 fbtest: AGP and MTRR status restored; fbtest done. Trying to free nonexistent resource <d0000000-dfffffff> $ cat /proc/mtrr reg00: base=0xc0000000 (3072MB), size=1024MB: uncachable, count=1 reg01: base=0xbe000000 (3040MB), size= 32MB: uncachable, count=1 --- BROKEN: 2.4.21-139 on S2885ANRF with Radeon 9100 --- Default: 19 MiB/s, fast-writes 25 MiB/s Linux agpgart interface v0.99 (c) Jeff Hartmann agpgart: Maximum main memory to use for agp memory: 7956M agpgart: Detected AMD 8151 chipset agpgart: AGP aperture is 256M @ 0xe0000000 PCI-DMA: Reserving 128MB of IOMMU area in the AGP aperture ... fbtest: Framebuffer bandwidth tester v0.1 fbtest: mapped framebuffer at 0xffffff0000229000 for 67108864 bytes fbtest: default AGP/MTRR: framebuffer write bandwidth 19 MiB/s mtrr: type mismatch for d0000000,4000000 old: uncachable new: write-combining fbtest: WARNING: failed to set wrtite-combining in MTRR fbtest: Card has AGP capability: 2f000217 00000200 fbtest: Bridge has AGP capability: 1f000b77 00000000 AGP: Found AGPv3 capable device at 4:0:0 AGP: Version 2 AGP device found. AGP: Only 1 devices found, not enough, trying AGPv2 fbtest: AGP mode is 4x SidebandAddressing=enabled FastWrites=enabled fbtest: AGP fast-write: framebuffer write bandwidth 25 MiB/s mtrr: type mismatch for d0000000,4000000 old: uncachable new: write-combining fbtest: WARNING: failed to set wrtite-combining in MTRR AGP: Found AGPv3 capable device at 4:0:0 AGP: Version 2 AGP device found. AGP: Only 1 devices found, not enough, trying AGPv2 fbtest: AGP and MTRR status restored; fbtest done. --- BROKEN: 2.4.21-139 on S2885ANRF with Radeon 9100 and hacked MTRR entries --- (where here I have deleted MTRR entry 0 and replaced it with several others that similarly cover all of that 1GB _except_ the framebuffer, so that I can give it a write-combining entry) Linux agpgart interface v0.99 (c) Jeff Hartmann agpgart: Maximum main memory to use for agp memory: 7956M agpgart: Detected AMD 8151 chipset agpgart: AGP aperture is 256M @ 0xe0000000 PCI-DMA: Reserving 128MB of IOMMU area in the AGP aperture ... fbtest: Framebuffer bandwidth tester v0.1 fbtest: mapped framebuffer at 0xffffff0000229000 for 67108864 bytes fbtest: default AGP/MTRR: framebuffer write bandwidth 25 MiB/s fbtest: default AGP/write-combining: framebuffer write bandwidth 13 MiB/s fbtest: Card has AGP capability: 2f000217 1f000314 fbtest: Bridge has AGP capability: 1f000b77 00000b34 AGP: Found AGPv3 capable device at 4:0:0 AGP: Version 2 AGP device found. AGP: Only 1 devices found, not enough, trying AGPv2 fbtest: AGP mode is 4x SidebandAddressing=enabled FastWrites=enabled fbtest: AGP fast-write: framebuffer write bandwidth 13 MiB/s fbtest: AGP fast writes/write-combining: framebuffer write bandwidth 13 MiB/s AGP: Found AGPv3 capable device at 4:0:0 AGP: Version 2 AGP device found. AGP: Only 1 devices found, not enough, trying AGPv2 fbtest: AGP and MTRR status restored; fbtest done.