Skip to contentSkip to conversation

agpgart issue on 2.6.1-rc1-bk3 (x86-64)

DISCUSSION Srihari Vijayaraghavan 2 participants 3 messages Jan 4, 2004 – Jan 7, 2004 Agpgart driver

lore
Share & tools
lore
#0 lore raw

Hello,

I see this message in the 2.6.1-rc3-bk3 kernel log:
agpgart: Detected AGP bridge 0
agpgart: Too many northbridges for AGP

This results in <100 FPS in glxgears, and I am unable to play the tuxracer game :-). With 2.6.0-x8664-1 however I get 450 FPS (approx), and all was well.

Upon applying this patch (making it identical to 2.6.0-x86-64 that is):
--- 2.6.1-rc1-bk3/drivers/char/agp/amd64-agp.c.orig 2004-01-04
01:06:20.000000000 +1100
+++ 2.6.1-rc1-bk3/drivers/char/agp/amd64-agp.c 2004-01-04 01:06:50.000000000 +1100
@@ -16,11 +16,7 @@
#include "agp.h"

/* Will need to be increased if AMD64 ever goes >8-way. */
-#ifdef CONFIG_SMP
#define MAX_HAMMER_GARTS 8
-#else
-#define MAX_HAMMER_GARTS 1
-#endif

/* PTE bits. */
#define GPTE_VALID 1

Of course that maybe a wrong approach. But that makes things a lot better, and I see this message in the kernel log:
agpgart: Detected AGP bridge 0
agpgart: Maximum main memory to use for agp memory: 941M
agpgart: AGP aperture is 128M @ 0xd0000000

And the number of FPS in glxgears is back to normal (450 FPS approx).

Here is the 'lspci' information from my K8T800 chipset based Gigabyte GA-K8VNXP board (and there seems to be 4 AMD K8 north bridges):
00:00.0 Host bridge: VIA Technologies, Inc.: Unknown device 3188 (rev 01) 00:01.0 PCI bridge: VIA Technologies, Inc.: Unknown device b188 00:0e.0 RAID bus controller: Integrated Technology Express, Inc.: Unknown device 8212 (rev 11)
00:0f.0 RAID bus controller: VIA Technologies, Inc.: Unknown device 3149 (rev
80)
00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE (rev 06) 00:10.0 USB Controller: VIA Technologies, Inc. USB (rev 81) 00:10.1 USB Controller: VIA Technologies, Inc. USB (rev 81) 00:10.2 USB Controller: VIA Technologies, Inc. USB (rev 81) 00:10.3 USB Controller: VIA Technologies, Inc. USB (rev 81) 00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86) 00:11.0 ISA bridge: VIA Technologies, Inc.: Unknown device 3227 00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235 AC97 Audio Controller (rev 60)
00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78) 00:13.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 (rev 10) 00:14.0 FireWire (IEEE 1394): Texas Instruments: Unknown device 8025 (rev 01) 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 NorthBridge 01:00.0 VGA compatible controller: ATI Technologies Inc Radeon RV100 QY [Radeon 7000/VE]

Of course CONFIG_SMP is not set in my .config.

Thanks
Hari

#1 lore raw
Quoted 16 lines · Srihari Vijayaraghavan

Hello,

I see this message in the 2.6.1-rc3-bk3 kernel log:
agpgart: Detected AGP bridge 0
agpgart: Too many northbridges for AGP

This results in <100 FPS in glxgears, and I am unable to play the tuxracer game :-). With 2.6.0-x8664-1 however I get 450 FPS (approx), and all was well.

Upon applying this patch (making it identical to 2.6.0-x86-64 that is):
--- 2.6.1-rc1-bk3/drivers/char/agp/amd64-agp.c.orig 2004-01-04
01:06:20.000000000 +1100
+++ 2.6.1-rc1-bk3/drivers/char/agp/amd64-agp.c 2004-01-04 01:06:50.000000000 +1100

Review line 23

Quoted 8 lines
(quoted diff) +0 -4
@@ -16,11 +16,7 @@
 #include "agp.h"
 
 /* Will need to be increased if AMD64 ever goes >8-way. */
-#ifdef CONFIG_SMP
 #define MAX_HAMMER_GARTS   8
-#else
-#define MAX_HAMMER_GARTS   1
-#endif

Wrong fix. Amongst another bunch of AGP fixes going to Linus/Andrew on Monday is the following..

(Andi also sent me another amd64 update, which I'll merge before
pushing Linuswards)

drivers/char/agp/amd64-agp.c +8 -1
diff -urpN --exclude-from=/home/davej/.exclude bk-linus/drivers/char/agp/amd64-agp.c linux-2.5/drivers/char/agp/amd64-agp.c
@@ -357,11 +356,18 @@ static __devinit int cache_nbs (struct p
 		}
 		hammers[i++] = loop_dev;
 		nr_garts = i;
-		if (i == MAX_HAMMER_GARTS) { 
+#ifdef CONFIG_SMP
+		if (i > MAX_HAMMER_GARTS) { 
 			printk(KERN_INFO PFX "Too many northbridges for AGP\n");
 			return -1;
 		}
+#else
+		/* Uniprocessor case, return after finding first bridge.
+		   (There may be more, but in UP, we don't care). */
+		return 0;
+#endif
 	}
+
 	return i == 0 ? -1 : 0;
 }
 
Signature · 1 line
 Dave Jones     http://www.codemonkey.org.uk
#2 lore raw

Hello Dave,

Quoted 6 lines · Dave Jones

Wrong fix. Amongst another bunch of AGP fixes going to Linus/Andrew on Monday is the following..

(Andi also sent me another amd64 update, which I'll merge before
pushing Linuswards)

The agpgart is working fine under 2.6.1-rc2 kernel.

Thanks
Hari
[email protected]