[Crash-utility] crash vs irqs
Dave Anderson
anderson at redhat.com
Tue Jul 10 21:30:08 UTC 2007
D. Hugh Redelmeier wrote:
> | From: D. Hugh Redelmeier <hugh at mimosa.com>
>
> | On my machine (AMD Athlon x2), it unconditionally prints 2304 structs,
> | each taking 27 lines. Of those, only 23 appear to have been used in
> | the day that the machine had been up.
>
> | I wonder why the kernel allocates so many irq_desc entries. According
> | to "nm -f sysv vmlinux", irq_desc is 294912 bytes -- more than the
> | whole RAM on the first UNIX machine I used.
>
> include/asm-x86_64/irq.h defines NR_IRQS:
> #define NR_IRQS (NR_VECTORS + (32 *NR_CPUS))
>
> NR_VECTORS is 256.
>
> So NR_CPUS must be defined to be 64 on my machine. I wish I had that
> many CPUs.
>
> NR_CPUS seems to be defined here:
> include/linux/threads.h:17:#define NR_CPUS CONFIG_NR_CPUS
>
> CONFIG_NR_CPUS is defined in .config:
> CONFIG_NR_CPUS=64
>
> There is a comment in thread.h that suggests that NR_CPUS is the
> number of bits in a bitmask on the platform (32 or 64).
>
> Perhaps the array of irqs is addressed in a way that you know which
> ones are useless if you know how many CPUs there actually are (at
> runtime). Or perhaps if you know how many there were at most since
> processors might come and go.
Do your unused IRQs show "no_irq_chip" as the handler?
More information about the Crash-utility
mailing list