All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Kumlien <pomac@vapor.com>
To: ross@datscreative.com.au
Cc: linux-kernel@vger.kernel.org, Len Brown <len.brown@intel.com>,
	a.verweij@student.tudelft.nl,
	"Prakash K. Cheemplavam" <PrakashKC@gmx.de>,
	christian.kroener@tu-harburg.de,
	"Maciej W. Rozycki" <macro@ds2.pg.gda.pl>,
	Jamie Lokier <jamie@shareable.org>,
	Daniel Drake <dan@reactivated.net>,
	Allen Martin <AMartin@nvidia.com>,
	cbradney@zip.com.au
Subject: Re: IO-APIC on nforce2 [PATCH] + [PATCH] for nmi_debug=1 + [PATCH]
Date: Mon, 10 May 2004 14:22:24 +0200	[thread overview]
Message-ID: <1084191744.2954.6.camel@big> (raw)
In-Reply-To: <200405102137.11468.ross@datscreative.com.au>


[-- Attachment #1.1: Type: text/plain, Size: 2152 bytes --]

On Mon, 2004-05-10 at 13:37, Ross Dickson wrote:
> Craig Bradney wrote
> 
> >Well.. 2.6.6 is released.. and THANK YOU Linus and all the patch 
> > writers.. we have nforce2 fixes in the released kernel now. I'm just 
> > waiting for a gentoo-dev-sources release now.. 
> >
> >Craig 
> 
> MOMENT PLEASE.
> ALMOST complete nforce2 support. Job not done yet.

Damn =)

> Unfortunately 2.6.6 still has the old check_timer code which inhibits
> nmi_watchdog=1 on all nforce2 from working by having timer_ack=1
> when checking io-apic pit routing.
> 
> It is a hardware issue - NOT A BUGGY BIOS ISSUE inside the integrated 
> nforce2 interrupt routing.

So it should be in.

> To my understanding IT WILL NEVER BE FIXED BY A BIOS REVISION and 
> after reading the 8259 datasheets I think it is a mistake within the
> existing code to have the timer_ack on there in the first place. 

The "breaking" machine could be blacklisted instead.

> I would still like to see Maciej's check_timer patch in the kernel. It was
> pulled after only a single user mobo complaint was posted yet it helps
> both nforce2 and ibm bios pc's. To my knowledge little effort was made
> by that user to accomodate the patch - it was just outright pulled in spite
> of its benefit to others?

Hummm, and now ppl seem to be forcing 4k stacks that breaks my laptop to
a level of non usability.. =P

> Who do we ask to revisit this? Linus? the io-apic.c maintainer? or the one
> user with a complaint?

Perhaps there should be a workaround option, ie like acpi=force etc.

> That patch that was dropped by Linus? after appearing in 2.6.3-mm3. 
> For those nforce2 users with problems of clock skew with the timer into pin0
> routing, that patch gave a virtual wire timer routing which worked well.

> It also works around serious problems for ibm users who also want it in.
> http://linux.derkeiler.com/Mailing-Lists/Kernel/2004-04/4421.html

Rediffed it against 2.6.6
But i don't see how the virtual wire mode was done, i just rediffed the
patch that i found.

-- 
Ian Kumlien <pomac () vapor ! com> -- http://pomac.netswarm.net

[-- Attachment #1.2: io-apic.patch --]
[-- Type: text/x-patch, Size: 1507 bytes --]

--- linux/arch/i386/kernel/io_apic.c.orig	2004-05-10 14:08:00.000000000 +0200
+++ linux/arch/i386/kernel/io_apic.c	2004-05-10 14:12:17.000000000 +0200
@@ -2159,6 +2159,10 @@
 {
 	int pin1, pin2;
 	int vector;
+	unsigned int ver;
+
+	ver = apic_read(APIC_LVR);
+	ver = GET_APIC_VERSION(ver);
 
 	/*
 	 * get/set the timer IRQ vector:
@@ -2172,11 +2176,15 @@
 	 * 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.
+	 * disabled in the local APIC. Finally timer interrupts
+	 * need to be acknowledged manually in the 8259A for
+	 * do_slow_timeoffset() and for the i82489DX when using
+	 * the NMI watchdog.
 	 */
 	apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT);
 	init_8259A(1);
-	timer_ack = 1;
+	timer_ack = !cpu_has_tsc;
+	timer_ack |= nmi_watchdog == NMI_IO_APIC && !APIC_INTEGRATED(ver);
 	enable_8259A_irq(0);
 
 	pin1 = find_isa_irq_pin(0, mp_INT);
@@ -2194,7 +2202,8 @@
 				disable_8259A_irq(0);
 				setup_nmi();
 				enable_8259A_irq(0);
-				check_nmi_watchdog();
+				if (check_nmi_watchdog() < 0)
+					timer_ack = !cpu_has_tsc;
 			}
 			return;
 		}
@@ -2217,7 +2226,8 @@
 				add_pin_to_irq(0, 0, pin2);
 			if (nmi_watchdog == NMI_IO_APIC) {
 				setup_nmi();
-				check_nmi_watchdog();
+				if (check_nmi_watchdog() < 0)
+					timer_ack = !cpu_has_tsc;
 			}
 			return;
 		}

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  parent reply	other threads:[~2004-05-10 12:22 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-10 11:37 IO-APIC on nforce2 [PATCH] + [PATCH] for nmi_debug=1 + [PATCH] Ross Dickson
2004-05-10 12:07 ` Craig Bradney
2004-05-10 12:22 ` Ian Kumlien [this message]
2004-05-10 15:05 ` Arjen Verweij
2004-05-10 16:04   ` Ian Kumlien
2004-05-10 17:39   ` Ian Kumlien
2004-05-24 16:10 ` Maciej W. Rozycki
  -- strict thread matches above, loose matches on Subject: below --
2004-05-07  7:29 Ian Kumlien
2004-05-08  3:45 ` Richard James
2004-05-08  5:31 ` Richard James
2004-05-08  9:22   ` Ian Kumlien
2004-05-10  8:49     ` Craig Bradney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1084191744.2954.6.camel@big \
    --to=pomac@vapor.com \
    --cc=AMartin@nvidia.com \
    --cc=PrakashKC@gmx.de \
    --cc=a.verweij@student.tudelft.nl \
    --cc=cbradney@zip.com.au \
    --cc=christian.kroener@tu-harburg.de \
    --cc=dan@reactivated.net \
    --cc=jamie@shareable.org \
    --cc=len.brown@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=macro@ds2.pg.gda.pl \
    --cc=ross@datscreative.com.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.