public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Mike Travis <travis@sgi.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Yinghai Lu <yhlu.kernel@gmail.com>, Ingo Molnar <mingo@elte.hu>,
	Thomas Gleixner <tglx@linutronix.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Dhaval Giani <dhaval@linux.vnet.ibm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, Alan Mayer <ajm@sgi.com>
Subject: Re: [PATCH] x86: 64bit support more than 256 irq v2
Date: Mon, 04 Aug 2008 06:20:29 -0700	[thread overview]
Message-ID: <4897021D.7040708@sgi.com> (raw)
In-Reply-To: <m14p64i0lr.fsf@frodo.ebiederm.org>

Eric W. Biederman wrote:
> "Yinghai Lu" <yhlu.kernel@gmail.com> writes:
> 
>> On Fri, Aug 1, 2008 at 7:02 PM, Yinghai Lu <yhlu.kernel@gmail.com> wrote:
>>> Dhaval Giani got:
>>> kernel BUG at arch/x86/kernel/io_apic_64.c:357!
>>> invalid opcode: 0000 [1] SMP
>>> CPU 24
>>> ...
>>>
>>> his system (x3950) has 8 ioapic, irq > 256
>>>
>>> caused by
>>>        commit 9b7dc567d03d74a1fbae84e88949b6a60d922d82
>>>        Author: Thomas Gleixner <tglx@linutronix.de>
>>>        Date:   Fri May 2 20:10:09 2008 +0200
>>>
>>>           x86: unify interrupt vector defines
>>>
>>>           The interrupt vector defines are copied 4 times around with minimal
>>>           differences. Move them all into asm-x86/irq_vectors.h
>>>
>>> because 64bit allow same vector for different cpu to serve different irq
>>>
>>> need to create that array dynamically later
>>>
>>> v2: change NR_IRQS to 1024
>>>
>>> Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
>>> Tested-by: Dhaval Giani <dhaval@linux.vnet.ibm.com>
>> this is for
>> http://bugzilla.kernel.org/show_bug.cgi?id=11201
>>
>> but need SGI guys to verify in their system. they like to have NR_IRQS to be 224
> 
> There was a patch that came out a while ago that set NR_IRQS as NR_IOAPICS*32 from
> SGI.  Where that got to I don't recall.
> 
> Eric

That was from Alan ... I'll Cc: him.  Here's an early copy (not sure if
this was the final one though.)


>From: Alan Mayer <ajm@sgi.com>
Subject:  [PATCH] x86_64: resize NR_IRQS for large machines

On machines with very large numbers of cpus, tables that are dimensioned
by NR_IRQS get very large, especially the irq_desc table.  They are also
very sparsely used.  When the cpu count is > MAX_IO_APICS, use MAX_IO_APICS
to set NR_IRQS, otherwise use NR_CPUS.

Reviewed-by: Christoph Lameter <clameter@sgi.com>

Signed-off-by: Alan Mayer <ajm@sgi.com>
Index: v2.6.25-rc6/include/asm-x86/irq_64.h
===================================================================
--- v2.6.25-rc6.orig/include/asm-x86/irq_64.h	2008-03-19 16:52:52.000000000 -0500
+++ v2.6.25-rc6/include/asm-x86/irq_64.h	2008-03-20 16:46:51.000000000 -0500
@@ -10,6 +10,10 @@
  *	<tomsoft@informatik.tu-chemnitz.de>
  */
 
+#if !defined(MAX_IO_APICS)
+#include <asm/apicdef.h>
+#endif
+
 #define TIMER_IRQ 0
 
 /*
@@ -31,7 +35,11 @@
 
 #define FIRST_SYSTEM_VECTOR	0xef   /* duplicated in hw_irq.h */
 
-#define NR_IRQS (NR_VECTORS + (32 *NR_CPUS))
+#if NR_CPUS < MAX_IO_APICS
+#define NR_IRQS (NR_VECTORS + (32 * NR_CPUS))
+#else
+#define NR_IRQS (NR_VECTORS + (32 * MAX_IO_APICS))
+#endif
 #define NR_IRQ_VECTORS NR_IRQS
 
 static __inline__ int irq_canonicalize(int irq)
Index: v2.6.25-rc6/include/linux/kernel_stat.h
===================================================================
--- v2.6.25-rc6.orig/include/linux/kernel_stat.h	2008-03-19 16:53:00.000000000 -0500
+++ v2.6.25-rc6/include/linux/kernel_stat.h	2008-03-20 11:12:27.000000000 -0500
@@ -1,11 +1,11 @@
 #ifndef _LINUX_KERNEL_STAT_H
 #define _LINUX_KERNEL_STAT_H
 
-#include <asm/irq.h>
 #include <linux/smp.h>
 #include <linux/threads.h>
 #include <linux/percpu.h>
 #include <linux/cpumask.h>
+#include <asm/irq.h>
 #include <asm/cputime.h>
 
 /*

  parent reply	other threads:[~2008-08-04 13:21 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-02  2:02 [PATCH] x86: 64bit support more than 256 irq v2 Yinghai Lu
2008-08-02  2:16 ` Yinghai Lu
2008-08-02  2:58   ` Eric W. Biederman
2008-08-02  3:11     ` Yinghai Lu
2008-08-02  3:37       ` Eric W. Biederman
2008-08-04 13:20     ` Mike Travis [this message]
2008-08-04 18:16       ` Yinghai Lu
2008-08-03  5:09 ` Eric W. Biederman
2008-08-03  5:26 ` [PATCH] x86_64: Restore the proper NR_IRQS define so larger systems work Eric W. Biederman
2008-08-03  5:58   ` Yinghai Lu
2008-08-03  6:35     ` Eric W. Biederman
2008-08-03  6:54       ` Jeremy Fitzhardinge
2008-08-03  6:44     ` Jeremy Fitzhardinge
  -- strict thread matches above, loose matches on Subject: below --
2008-07-29 21:14 [PATCH] x86: 64bit support more than 256 irq v2 Yinghai Lu
2008-07-29 22:16 ` Yinghai Lu
2008-07-29 23:22 ` Eric W. Biederman

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=4897021D.7040708@sgi.com \
    --to=travis@sgi.com \
    --cc=ajm@sgi.com \
    --cc=akpm@linux-foundation.org \
    --cc=dhaval@linux.vnet.ibm.com \
    --cc=ebiederm@xmission.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=tglx@linutronix.de \
    --cc=yhlu.kernel@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox