Bug#491309: NR_CPUS in debian linux-images

2008-07-29 Thread Mike Travis
maximilian attems wrote:
 hello
 
 after getting an irc query and bug report on our currently set number of
 cpu for the upcoming lenny release:
 /boot/config-2.6.26-1-amd64:CONFIG_NR_CPUS=32
 
 - http://bugs.debian.org/491309
 
 we came to this issue:
 10:13 waldi 1345623 3148364  417112 4911099  4aeffb x86_64-255/vmlinux
 10:13 waldi 1339887  380556  273880 1994323  1e6e53 x86_64-32/vmlinux
 10:13 waldi only change is the number of cpus *gna*
 
 10:16 waldi struct irq_cfg irq_cfg[NR_IRQS] __read_mostly = {
 10:18 waldi yeah, 2.5MiB just for the interrups
 10:19 waldi #define NR_IRQS (256 + (32 * NR_CPUS))
 10:29 waldi and because some parts have static initializers, it can't be 
 moved
  into the bss section
 
 the debian installer cares about the image size.
 
 thanks for your input, as i see that you do the 4k cpu work on 2.6.27.
 

Hi,

Yes, we are aiming at having NR_CPUS=4096 as the default for distros using
2.6.27.  The above structure is by far the biggest memory hog (along with the
companion irq_desc[]) and we've targeted the next release to go to dynamically
allocated irq's (which btw, hopefully will have NR_CPUS=16384.)  The problem
with irq_cfg is that each element contains a cpumask_t field so growing NR_CPUS
causes an exponential increase.

You could look at the 2.6.27 version of include/asm-x86/irq_vectors.h to see
how NR_IRQ's is somewhat lessened (at least from a NR_CPUS=4096 perspective.)

Thanks,
Mike



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#491309: NR_CPUS in debian linux-images

2008-07-29 Thread Bastian Blank
On Tue, Jul 29, 2008 at 07:48:11AM -0700, Mike Travis wrote:
 You could look at the 2.6.27 version of include/asm-x86/irq_vectors.h to see
 how NR_IRQ's is somewhat lessened (at least from a NR_CPUS=4096 perspective.)

May this change be applicable to 2.6.26 or will it break something else?

Bastian

-- 
I'm a soldier, not a diplomat.  I can only tell the truth.
-- Kirk, Errand of Mercy, stardate 3198.9


signature.asc
Description: Digital signature


Bug#491309: NR_CPUS in debian linux-images

2008-07-29 Thread Bastian Blank
On Tue, Jul 29, 2008 at 05:19:22PM +0200, Bastian Blank wrote:
 On Tue, Jul 29, 2008 at 07:48:11AM -0700, Mike Travis wrote:
  You could look at the 2.6.27 version of include/asm-x86/irq_vectors.h to see
  how NR_IRQ's is somewhat lessened (at least from a NR_CPUS=4096 
  perspective.)
 May this change be applicable to 2.6.26 or will it break something else?

Aka something like:

diff --git a/include/asm-x86/irq_64.h b/include/asm-x86/irq_64.h
index 083d35a..30e1a6b 100644
--- a/include/asm-x86/irq_64.h
+++ b/include/asm-x86/irq_64.h
@@ -31,8 +31,22 @@
 
 #define FIRST_SYSTEM_VECTOR0xef   /* duplicated in hw_irq.h */
 
-#define NR_IRQS (NR_VECTORS + (32 * NR_CPUS))
-#define NR_IRQ_VECTORS NR_IRQS
+#if defined(CONFIG_X86_IO_APIC) || defined(CONFIG_PARAVIRT) || 
defined(CONFIG_X86_VISWS)
+
+# define NR_IRQS   224
+
+# if (224 = 32 * NR_CPUS)
+#  define NR_IRQ_VECTORS   NR_IRQS
+# else
+#  define NR_IRQ_VECTORS   (32 * NR_CPUS)
+# endif
+
+#else /* IO_APIC || PARAVIRT */
+
+# define NR_IRQS   16
+# define NR_IRQ_VECTORSNR_IRQS
+
+#endif
 
 static inline int irq_canonicalize(int irq)
 {

Which produces (with 255 cpus):
   textdata bss dec hex filename
   3532199  505256  610456 4647911  46ebe7 vmlinux

Bastian

-- 
It would be illogical to kill without reason.
-- Spock, Journey to Babel, stardate 3842.4



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#491309: NR_CPUS in debian linux-images

2008-07-29 Thread Mike Travis
Bastian Blank wrote:
 On Tue, Jul 29, 2008 at 07:48:11AM -0700, Mike Travis wrote:
 You could look at the 2.6.27 version of include/asm-x86/irq_vectors.h to see
 how NR_IRQ's is somewhat lessened (at least from a NR_CPUS=4096 perspective.)
 
 May this change be applicable to 2.6.26 or will it break something else?
 
 Bastian
 

I believe it is ok.  The number of irq's is not really based on NR_CPUS but
the number of IO_APICS.  But I can't say for sure as I've been solely focused
on 2.6.27 and haven't been following the breakup of NR_IRQS, NR_IRQ_VECTORS
and NR_VECTORS and how they are used in various places.

Btw, the biggest problem I found with increasing NR_CPUS was overflowing the
stack, though I doubt increasing to 96 or 128 will trigger any of the hot spots
fixed in 2.6.27.

Thanks,
Mike



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]