public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: IO-APIC on nforce2
@ 2004-04-13  1:17 Ross Dickson
  2004-04-13  4:01 ` really bensoo_at_soo_dot_com
  2004-04-13  5:08 ` Len Brown
  0 siblings, 2 replies; 69+ messages in thread
From: Ross Dickson @ 2004-04-13  1:17 UTC (permalink / raw)
  To: christian.kroener; +Cc: linux-kernel, Maciej W. Rozycki, Len Brown

[-- Attachment #1: Type: text/plain, Size: 11113 bytes --]

Christian Kröner wrote

> I got a problem using LOCAL APIC and IO-APIC on my uniprocessor nforce2 board. 
> With recent kernels (latest -mm and 2.6.5-linus) the timer irq gets set to 
> XT-PIC, which results in having a constant hi-load of 15% (after booting) to 
> about 25% (after having the system run about 12 h). Earlier versions of -mm 
> set the timer-irq to IO-APIC-level (or edge, i dont remember it well) and i 
> never had any constant hi-load with these versions. Since mainline kernel 
> versions never ever set the timer irq to IO-APIC-{level,edge} i used to patch 
> them with the ross' nforce-patches, so that the timer-irq gets to be 
> IO-APCI-edge, which worked even though the patch applied with offset. Anyways 
> with the latest mm-kernels these patches dont work anymore. I could apply 
> them with offset but it seems the code isn't used or something else is wrong 
> since the timer-irq stays XT-PIC, which results in the problems above. Could 
> anyone point out, how to resolve this problem or tell me what I could do, to 
> get my timer-irq right? I'm sure willing to test patches... 
> Thanks in advance, christian. 
> - 


Hi Christian

I don't know why the high load on xtpic except maybe heaps of spurious irq's 
under the hood.

I am working with 2.4.26-rc2 and have noticed a change with the the recent acpi?
update. The recent fix to stop unnecessary ioapic irq routing entries puts the 
following if statement into io_apic.c, io_apic_set_pci_routing()

	/*
	 * IRQs < 16 are already in the irq_2_pin[] map
	 */
	if (irq >= 16)
		add_pin_to_irq(irq, ioapic, pin);

which prevents my io-apic patch from using that function to reprogram the
io-apic pin on irq0 from pin2 to pin0. 

As a quick fix you could drop the "if (irq >= 16)".
I don't know what harm if any that would do other than create unwanted
irq mapping entries as in the past.

As a better solution to work with the new code I have created a function to
change the pin an irq comes into the io-apic on and also re-initialise the 
io-apic to deal with the change. 

Here is the function for 2.4.26-rc2.

/*
 * reroute irq to different pin clearing old and enabling new
 */
static void __init replace_IO_APIC_pin_at_irq(unsigned int irq,
						int oldapic, int oldpin,
						int newapic, int newpin)
{
	struct IO_APIC_route_entry entry;
	unsigned long flags;
	/*
	 * read oldapic entry
	 */
	spin_lock_irqsave(&ioapic_lock, flags);
	*(((int*)&entry) + 0) = io_apic_read(oldapic, 0x10 + 2 * oldpin);
	*(((int*)&entry) + 1) = io_apic_read(oldapic, 0x11 + 2 * oldpin);
	spin_unlock_irqrestore(&ioapic_lock, flags);
	/*
	 * Check delivery_mode to be sure we're not clearing an SMI pin
	 */
	if (entry.delivery_mode == dest_SMI)
		return;
	/*
	 * clear oldpin on oldapic
	 */
	clear_IO_APIC_pin(oldapic, oldpin);
	/*
	 * reroute irq to newpin on newapic
	 */
	replace_pin_at_irq(irq, oldapic, oldpin, newapic, newpin);
	/*
	 * Enable newpin on newapic
	*/
	spin_lock_irqsave(&ioapic_lock, flags);
	io_apic_write(newapic, 0x10 + 2*newpin, *(((int *)&entry) + 0));
	io_apic_write(newapic, 0x11 + 2*newpin, *(((int *)&entry) + 1));
	spin_unlock_irqrestore(&ioapic_lock, flags);
}

I am now using this instead of the io_apic_set_pci_routing().
My modified check_timer() to work with it is as follows.

/*
 * This code may look a bit paranoid, but it's supposed to cooperate with
 * a wide range of boards and BIOS bugs.  Fortunately only the timer IRQ
 * is so screwy.  Thanks to Brian Perkins for testing/hacking this beast
 * fanatically on his truly buggy board.
 */
static inline void check_timer(void)
{
	extern int timer_ack;
	int pin1, pin2;
	int vector, i;

	/*
	 * get/set the timer IRQ vector:
	 */
	disable_8259A_irq(0);
	vector = assign_irq_vector(0);
	set_intr_gate(vector, interrupt[0]);

	/*
	 * Subtle, code in do_timer_interrupt() expects an AEOI
	 * mode for the 8259A whenever interrupts are routed
	 * through I/O APICs.  Also IRQ0 has to be enabled in
	 * the 8259A which implies the virtual wire has to be
	 * disabled in the local APIC.
	 */
	apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT);
	init_8259A(1);
	timer_ack = 1;
	enable_8259A_irq(0);

	pin1 = find_isa_irq_pin(0, mp_INT);
	pin2 = find_isa_irq_pin(0, mp_ExtINT);

	printk(KERN_INFO "..TIMER: vector=0x%02X pin1=%d pin2=%d\n", vector, pin1, pin2);

	if (pin1 != -1) {
		for(i=0;i<2;i++) {
			/*
			 * Ok, does IRQ0 through the IOAPIC work?
			 */
			unmask_IO_APIC_irq(0);
			if (timer_irq_works()) {
				if (nmi_watchdog == NMI_IO_APIC) {
					disable_8259A_irq(0);
					setup_nmi();
					enable_8259A_irq(0);
					check_nmi_watchdog();
				}
				printk(KERN_INFO "..TIMER: works OK on IO-APIC irq0\n" );
				return;
			}
			mask_IO_APIC_irq(0);
			if(!i) { /* try INTIN0 if INTIN2 failed */
				printk(KERN_ERR "..MP-BIOS bug: 8254 timer not connected to IO-APIC INTIN%d\n",pin1);
				printk(KERN_INFO "..TIMER: Check if 8254 timer connected to IO-APIC INTIN0? ...\n");
				replace_IO_APIC_pin_at_irq(0, 0, pin1, 0, 0);
				timer_ack=0;
				disable_8259A_irq(0);
			} else { /* restore settings */
				clear_IO_APIC_pin(0, 0);
				printk(KERN_ERR "..TIMER: 8254 timer not connected to IO-APIC INTIN0\n");
				timer_ack=1;
				enable_8259A_irq(0);
			}
		}
	}

	printk(KERN_INFO "...trying to set up timer (IRQ0) through the 8259A ... ");
	if (pin2 != -1) {
		printk("\n..... (found pin %d) ...", pin2);
		/*
		 * legacy devices should be connected to IO APIC #0
		 */
		setup_ExtINT_IRQ0_pin(pin2, vector);
		if (timer_irq_works()) {
			printk("works.\n");
			if (pin1 != -1)
				replace_pin_at_irq(0, 0, pin1, 0, pin2);
			else
				add_pin_to_irq(0, 0, pin2);
			if (nmi_watchdog == NMI_IO_APIC) {
				setup_nmi();
				check_nmi_watchdog();
			}
			return;
		}
		/*
		 * Cleanup, just in case ...
		 */
		clear_IO_APIC_pin(0, pin2);
	}
	printk(" failed.\n");

	if (nmi_watchdog) {
		printk(KERN_WARNING "timer doesn't work through the IO-APIC - disabling NMI Watchdog!\n");
		nmi_watchdog = 0;
	}

	printk(KERN_INFO "...trying to set up timer as Virtual Wire IRQ...");

	disable_8259A_irq(0);
	irq_desc[0].handler = &lapic_irq_type;
	apic_write_around(APIC_LVT0, APIC_DM_FIXED | vector);	/* Fixed mode */
	enable_8259A_irq(0);

	if (timer_irq_works()) {
		printk(" works.\n");
		return;
	}
	apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_FIXED | vector);
	printk(" failed.\n");

	printk(KERN_INFO "...trying to set up timer as ExtINT IRQ...");

	init_8259A(0);
	make_8259A_irq(0);
	apic_write_around(APIC_LVT0, APIC_DM_EXTINT);

	unlock_ExtINT_logic();

	if (timer_irq_works()) {
		printk(" works.\n");
		return;
	}
	printk(" failed :(.\n");
	panic("IO-APIC + timer doesn't work! pester mingo@redhat.com");
}

This version loops twice on the "pin1" attempt, firstly trying the bios assigned
pin, then trying pin0 with no timer acks and the 8259 xtpic disabled.

I have not as yet downloaded 2.6.5xxx
From memory this 2.4.26-rc2 code should be very similar to the (2.6.5-linus)
but a bit different to the -mm series. For the -mm series I think you can drop
the "timer_ack=" lines from my changes as it still has Maciej Rozycki's 8259 
ack patch? The timer ack should already have been correctly set to off by it's
checking if the apic is an integrated one.

Here are the changes as a diff on the io_apic.c in 2.4.26-rc2

--- io_apic.c.orig	2004-04-08 15:56:53.000000000 +1000
+++ io_apic.c	2004-04-10 02:33:02.000000000 +1000
@@ -197,10 +197,48 @@ static void clear_IO_APIC (void)
 		for (pin = 0; pin < nr_ioapic_registers[apic]; pin++)
 			clear_IO_APIC_pin(apic, pin);
 }

 /*
+ * reroute irq to different pin clearing old and enabling new
+ */
+static void __init replace_IO_APIC_pin_at_irq(unsigned int irq,
+						int oldapic, int oldpin,
+						int newapic, int newpin)
+{
+	struct IO_APIC_route_entry entry;
+	unsigned long flags;
+	/*
+	 * read oldapic entry
+	 */
+	spin_lock_irqsave(&ioapic_lock, flags);
+	*(((int*)&entry) + 0) = io_apic_read(oldapic, 0x10 + 2 * oldpin);
+	*(((int*)&entry) + 1) = io_apic_read(oldapic, 0x11 + 2 * oldpin);
+	spin_unlock_irqrestore(&ioapic_lock, flags);
+	/*
+	 * Check delivery_mode to be sure we're not clearing an SMI pin
+	 */
+	if (entry.delivery_mode == dest_SMI)
+		return;
+	/*
+	 * clear oldpin on oldapic
+	 */
+	clear_IO_APIC_pin(oldapic, oldpin);
+	/*
+	 * reroute irq to newpin on newapic
+	 */
+	replace_pin_at_irq(irq, oldapic, oldpin, newapic, newpin);
+	/*
+	 * Enable newpin on newapic
+	*/
+	spin_lock_irqsave(&ioapic_lock, flags);
+	io_apic_write(newapic, 0x10 + 2*newpin, *(((int *)&entry) + 0));
+	io_apic_write(newapic, 0x11 + 2*newpin, *(((int *)&entry) + 1));
+	spin_unlock_irqrestore(&ioapic_lock, flags);
+}
+
+/*
  * support for broken MP BIOSs, enables hand-redirection of PIRQ0-7 to
  * specific CPU-side IRQs.
  */

 #define MAX_PIRQS 8
@@ -1582,11 +1620,11 @@ static inline void unlock_ExtINT_logic(v
  */
 static inline void check_timer(void)
 {
 	extern int timer_ack;
 	int pin1, pin2;
-	int vector;
+	int vector, i;

 	/*
 	 * get/set the timer IRQ vector:
 	 */
 	disable_8259A_irq(0);
@@ -1609,25 +1647,39 @@ static inline void check_timer(void)
 	pin2 = find_isa_irq_pin(0, mp_ExtINT);

 	printk(KERN_INFO "..TIMER: vector=0x%02X pin1=%d pin2=%d\n", vector, pin1, pin2);

 	if (pin1 != -1) {
-		/*
-		 * Ok, does IRQ0 through the IOAPIC work?
-		 */
-		unmask_IO_APIC_irq(0);
-		if (timer_irq_works()) {
-			if (nmi_watchdog == NMI_IO_APIC) {
+		for(i=0;i<2;i++) {
+			/*
+			 * Ok, does IRQ0 through the IOAPIC work?
+			 */
+			unmask_IO_APIC_irq(0);
+			if (timer_irq_works()) {
+				if (nmi_watchdog == NMI_IO_APIC) {
+					disable_8259A_irq(0);
+					setup_nmi();
+					enable_8259A_irq(0);
+					check_nmi_watchdog();
+				}
+				printk(KERN_INFO "..TIMER: works OK on IO-APIC irq0\n" );
+				return;
+			}
+			mask_IO_APIC_irq(0);
+			if(!i) { /* try INTIN0 if INTIN2 failed */
+				printk(KERN_ERR "..MP-BIOS bug: 8254 timer not connected to IO-APIC INTIN%d\n",pin1);
+				printk(KERN_INFO "..TIMER: Check if 8254 timer connected to IO-APIC INTIN0? ...\n");
+				replace_IO_APIC_pin_at_irq(0, 0, pin1, 0, 0);
+				timer_ack=0;
 				disable_8259A_irq(0);
-				setup_nmi();
+			} else { /* restore settings */
+				clear_IO_APIC_pin(0, 0);
+				printk(KERN_ERR "..TIMER: 8254 timer not connected to IO-APIC INTIN0\n");
+				timer_ack=1;
 				enable_8259A_irq(0);
-				check_nmi_watchdog();
 			}
-			return;
 		}
-		clear_IO_APIC_pin(0, pin1);
-		printk(KERN_ERR "..MP-BIOS bug: 8254 timer not connected to IO-APIC\n");
 	}

 	printk(KERN_INFO "...trying to set up timer (IRQ0) through the 8259A ... ");
 	if (pin2 != -1) {
 		printk("\n..... (found pin %d) ...", pin2);

Also attached as tarball if whitespace problems,
Hope this helps, Please cc me on responses,
Ross Dickson


[-- Attachment #2: nforce2-ioapic-rd-2.4.26-rc2.patch.tgz --]
[-- Type: application/x-tgz, Size: 1420 bytes --]

^ permalink raw reply	[flat|nested] 69+ messages in thread
* Re: IO-APIC on nforce2
@ 2004-04-13 11:58 Christian Kroener
  0 siblings, 0 replies; 69+ messages in thread
From: Christian Kroener @ 2004-04-13 11:58 UTC (permalink / raw)
  To: linux-kernel; +Cc: ross, macro, len.brown

thanks very much for the replies... Ross, I will test your patch as soon 
as I get home.
Some more infos: my machine worked pretty well and stable even with the 
irq0 as XT-PIC. Though I worried about the constant hi-load I got.
At the moment, using 2.6.4-ck2 patched only with the io_apic.c-diff from 
Ross I get this output on system-log:

ENABLING IO-APIC IRQs
IO-APIC (apicid-pin) 2-0, 2-16, 2-17, 2-18, 2-19, 2-20, 2-21, 2-22, 2-23 
not connected.
A..TIMER: vector=0x31 pin1=2 pin2=-1
..MP-BIOS bug: 8254 timer not connected to IO-APIC INTIN2
..TIMER: Is timer irq0 connected to IO-APIC INTIN0?...
IOAPIC[0]: Set PCI routing entry (2-0 -> 0x31 -> IRQ 0 Mode:0 Active:0)
..TIMER: works OK on IO-APIC INTIN0 irq0
Using local APIC timer interrupts.
calibrating APIC timer ...

cat /proc/interrupts gives me:

           CPU0      
  0:   13681442    IO-APIC-edge  timer
  1:         35    IO-APIC-edge  i8042
  2:          0          XT-PIC  cascade
  8:          4    IO-APIC-edge  rtc
  9:          0   IO-APIC-level  acpi
 12:       2054    IO-APIC-edge  i8042
 14:      81623    IO-APIC-edge  ide0
 15:         87    IO-APIC-edge  ide1
 16:       2397   IO-APIC-level  ide2, saa7134[0]
 17:        156   IO-APIC-level  CMI8738
 19:    1161008   IO-APIC-level  nvidia
 20:    3050303   IO-APIC-level  ohci_hcd, eth0
 21: 2316037857   IO-APIC-level  ehci_hcd
 22:         76   IO-APIC-level  ohci_hcd
NMI:          0
LOC:   13633382
ERR:          0
MIS:          0

irq-routing:

IO APIC #2......
.... register #00: 02000000
.......    : physical APIC id: 02
.......    : Delivery Type: 0
.......    : LTS          : 0
.... register #01: 00170011
.......     : max redirection entries: 0017
.......     : PRQ implemented: 0
.......     : IO APIC version: 0011
.... register #02: 00000000
.......     : arbitration: 00
.... IRQ redirection table:
NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:
00 001 01  0    0    0   0   0    1    1    31
01 001 01  0    0    0   0   0    1    1    39
02 000 00  0    0    0   0   0    0    0    00
03 001 01  0    0    0   0   0    1    1    41
04 001 01  0    0    0   0   0    1    1    49
05 001 01  0    0    0   0   0    1    1    51
06 001 01  0    0    0   0   0    1    1    59
07 001 01  0    0    0   0   0    1    1    61
08 001 01  0    0    0   0   0    1    1    69
09 001 01  0    1    0   0   0    1    1    71
0a 001 01  0    0    0   0   0    1    1    79
0b 001 01  0    0    0   0   0    1    1    81
0c 001 01  0    0    0   0   0    1    1    89
0d 001 01  0    0    0   0   0    1    1    91
0e 001 01  0    0    0   0   0    1    1    99
0f 001 01  0    0    0   0   0    1    1    A1
10 001 01  1    1    0   0   0    1    1    D1
11 001 01  1    1    0   0   0    1    1    D9
12 001 01  1    1    0   0   0    1    1    E1
13 001 01  1    1    0   0   0    1    1    C9
14 001 01  1    1    0   0   0    1    1    B1
15 001 01  1    1    0   0   0    1    1    C1
16 001 01  1    1    0   0   0    1    1    B9
17 001 01  1    1    0   0   0    1    1    A9
IRQ to pin mappings:
IRQ0 -> 0:2-> 0:0
IRQ1 -> 0:1
IRQ3 -> 0:3
IRQ4 -> 0:4
IRQ5 -> 0:5
IRQ6 -> 0:6
IRQ7 -> 0:7
IRQ8 -> 0:8
IRQ9 -> 0:9-> 0:9
IRQ10 -> 0:10
IRQ11 -> 0:11
IRQ12 -> 0:12
IRQ13 -> 0:13
IRQ14 -> 0:14
IRQ15 -> 0:15
IRQ16 -> 0:16
IRQ17 -> 0:17
IRQ18 -> 0:18
IRQ19 -> 0:19
IRQ20 -> 0:20
IRQ21 -> 0:21
IRQ22 -> 0:22
IRQ23 -> 0:23

Maybe some of the copy+paste wrent wrong (sucky Mozilla mail here).

Earlier versions of -mm reported setting irq0 as virtual wire irq worked 
and I didnt experience any uncommon hi-load with them. -mm latest sets 
the timer irq as ExtINT, resulting in these strange constant hi-loads.

I will report results of testing your patch later, Ross.
thanks, christian.




^ permalink raw reply	[flat|nested] 69+ messages in thread
* IO-APIC on nforce2
@ 2004-04-12 18:39 Christian Kröner
  0 siblings, 0 replies; 69+ messages in thread
From: Christian Kröner @ 2004-04-12 18:39 UTC (permalink / raw)
  To: linux-kernel

I got a problem using LOCAL APIC and IO-APIC on my uniprocessor nforce2 board. 
With recent kernels (latest -mm and 2.6.5-linus) the timer irq gets set to 
XT-PIC, which results in having a constant hi-load of 15% (after booting) to 
about 25% (after having the system run about 12 h). Earlier versions of -mm 
set the timer-irq to IO-APIC-level (or edge, i dont remember it well) and i 
never had any constant hi-load with these versions. Since mainline kernel 
versions never ever set the timer irq to IO-APIC-{level,edge} i used to patch 
them with the ross' nforce-patches, so that the timer-irq gets to be 
IO-APCI-edge, which worked even though the patch applied with offset. Anyways 
with the latest mm-kernels these patches dont work anymore. I could apply 
them with offset but it seems the code isn't used or something else is wrong 
since the timer-irq stays XT-PIC, which results in the problems above. Could 
anyone point out, how to resolve this problem or tell me what I could do, to 
get my timer-irq right? I'm sure willing to test patches...
Thanks in advance, christian.

^ permalink raw reply	[flat|nested] 69+ messages in thread

end of thread, other threads:[~2004-05-17 19:57 UTC | newest]

Thread overview: 69+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-04-13  1:17 IO-APIC on nforce2 Ross Dickson
2004-04-13  4:01 ` really bensoo_at_soo_dot_com
2004-04-13  4:55   ` Ross Dickson
2004-04-13 17:22     ` Christian Kröner
2004-04-13 21:18     ` really bensoo_at_soo_dot_com
2004-04-14  4:24       ` really bensoo_at_soo_dot_com
2004-04-13  5:08 ` Len Brown
2004-04-13  7:03   ` Ross Dickson
2004-04-13 13:46     ` Maciej W. Rozycki
2004-04-14  1:02     ` IO-APIC on nforce2 [PATCH] Len Brown
2004-04-14  5:02       ` Ross Dickson
2004-04-14  6:30         ` Jamie Lokier
2004-04-14 10:37         ` Maciej W. Rozycki
2004-04-15 19:28           ` Len Brown
2004-04-14 19:57         ` Christian Kröner
2004-04-15  0:17           ` Len Brown
2004-04-15  1:48             ` Ross Dickson
2004-04-15 17:09               ` Christian Kröner
2004-04-15 15:10       ` IO-APIC on nforce2 [PATCH] + [PATCH] for nmi_debug=1 + [PATCH] for idle=C1halt, 2.6.5 Ross Dickson
2004-04-15 20:17         ` Len Brown
2004-04-15 21:04           ` Craig Bradney
2004-04-21 20:22             ` Len Brown
2004-04-21 20:33               ` Ian Kumlien
2004-04-21 20:45               ` Craig Bradney
2004-04-21 21:28               ` Prakash K. Cheemplavam
2004-04-21 22:41                 ` Len Brown
2004-04-22  7:26                   ` Prakash K. Cheemplavam
2004-04-22 14:58                     ` Len Brown
2004-04-22  8:45                   ` Craig Bradney
2004-04-22 15:03                     ` Len Brown
2004-04-22 20:50                       ` Craig Bradney
2004-04-22  8:50                   ` Arjen Verweij
2004-04-22 16:39                   ` Jesse Allen
2004-04-22 17:21                     ` Len Brown
2004-04-22 21:29                       ` Len Brown
2004-04-23  8:48                         ` Prakash K. Cheemplavam
2004-04-23  9:01                           ` Arjen Verweij
2004-04-23  9:08                             ` Prakash K. Cheemplavam
2004-04-23  9:11                             ` Prakash K. Cheemplavam
2004-04-23 12:18                         ` Maciej W. Rozycki
2004-04-27  7:57                         ` ACPI broken on nforce2? Prakash K. Cheemplavam
2004-04-26 11:41                       ` IO-APIC on nforce2 [PATCH] + [PATCH] for nmi_debug=1 + [PATCH] for idle=C1halt, 2.6.5 Ross Dickson
2004-04-27 17:02                         ` Arjen Verweij
2004-04-27 17:35                           ` Ian Kumlien
2004-04-27 18:00                           ` Len Brown
2004-04-27 18:24                             ` Arjen Verweij
2004-04-27 18:51                             ` Jussi Laako
2004-04-28 11:33                             ` Ross Dickson
2004-04-28 20:59                               ` Jesse Allen
2004-04-29 11:44                                 ` Ross Dickson
2004-04-29 11:54                                   ` Maciej W. Rozycki
2004-04-29 12:00                                     ` Jamie Lokier
2004-04-29 12:26                                       ` Maciej W. Rozycki
2004-04-29 11:57                                   ` Jamie Lokier
2004-04-29 12:16                                   ` Craig Bradney
2004-04-29 20:24                                   ` Jesse Allen
2004-04-29 20:31                                     ` Prakash K. Cheemplavam
2004-05-03 20:45                                       ` Jesse Allen
2004-05-17 15:26                                         ` Prakash K. Cheemplavam
2004-05-17 19:32                                           ` Craig Bradney
2004-05-17 19:37                                             ` Prakash K. Cheemplavam
2004-05-17 19:57                                               ` Craig Bradney
2004-04-27 21:31                         ` Prakash K. Cheemplavam
2004-04-28 11:26                           ` Prakash K. Cheemplavam
2004-05-01  6:51                   ` Prakash K. Cheemplavam
2004-04-15 21:56           ` Arjen Verweij
2004-04-15 15:21       ` IO-APIC on nforce2 [PATCH] Zwane Mwaikambo
  -- strict thread matches above, loose matches on Subject: below --
2004-04-13 11:58 IO-APIC on nforce2 Christian Kroener
2004-04-12 18:39 Christian Kröner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox