From: ebiederm@xmission.com (Eric W. Biederman)
To: Yinghai Lu <yhlu.kernel@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
Dhaval Giani <dhaval@linux.vnet.ibm.com>,
Mike Travis <travis@sgi.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/7] dyn_array support
Date: Fri, 01 Aug 2008 13:13:45 -0700 [thread overview]
Message-ID: <m11w18xzly.fsf@frodo.ebiederm.org> (raw)
In-Reply-To: <200807301210.31511.yhlu.kernel@gmail.com> (Yinghai Lu's message of "Wed, 30 Jul 2008 12:10:30 -0700")
Ugh. Looks like I forgot to hit send on this.
Yinghai Lu <yhlu.kernel@gmail.com> writes:
> please check the patches adding dyn_array and nr_irqs
YH thank you for working on this.
To fix the post rc1 regression I believe your patch series is very
much overkill. We need to fix this but the bug should be fixed first
by restoring the old heuristics for NR_IRQS. I will carefully look at
your first patch and see if it successfully restores the old
heuristics, I don't think it quite does.
I very much do not like this approach of introducing nr_irqs instead
of NR_IRQS. It does not kill NR_IRQS it just renames it and it does
not appear to me to solve the real issues, and it seems to entrench
some current mistakes instead of clean them up. When I said NR_IRQS
must die I meant the concept not the spelling. Having a fixed sized
array is only part of it. We actually use that array very sparsely.
So even having an array of irq_desc structures is painful.
Further we want to user our irq numbers sparsely so that we can have a stable
irq numbers even for things such as msis.
Outside of the arch specific code and the irq implementation there are
currently only 40 mentions of NR_IRQS, and only 7 mentions of NR_IRQS as
an array size.
git-ls-files | grep -v '^arch' | grep -v '^include/asm' | \
grep -v '^kernel/irq' | grep -v 'drivers/xen/events.c' | \
xargs grep '[^A-Za-z0-9_]NR_IRQS[^A-Za-z0-9_]' | wc -l
There is little to no excuse for the generic code to be using NR_IRQS.
The usage in /dev/random should be moved in some form into irq_desc.
The usage in the serial code and in intr_remapping are failures to
use current best practices. For most of the rest simply introducing
an irq valid helper function would solve the issue.
Further once we have killed the usage of NR_IRQS outside of the arch
code. We don't need to introduce new infrastructure. We can call
alloc_bootmem as appropriate, and we can consider important things
such as NUMA affinity with the irq controllers, and where we expect
the irqs to be serviced.
Plus we don't have to allocate anything beyond the gsi or their mptable
equivalents until someone actually uses the msi or htirq interrupt.
Which means we can be a lot leaner, allocating precisely the irqs we need,
and a lot more efficient with NUMA affinity and by allocating irqs as
they show up.
Eric
prev parent reply other threads:[~2008-08-01 20:23 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
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
2008-07-30 4:38 ` RFC [PATCH] x86: introduce nr_irqs for 64bit Yinghai Lu
2008-07-30 10:09 ` Ingo Molnar
2008-07-30 10:16 ` Yinghai Lu
2008-07-30 12:58 ` Mike Travis
2008-07-30 10:11 ` [PATCH] x86: introduce nr_irqs for 64bit v2 Yinghai Lu
2008-07-30 19:10 ` [PATCH 0/7] dyn_array support Yinghai Lu
2008-07-30 19:13 ` [PATCH 2/7] x86: introduce nr_irqs for 64bit v3 Yinghai Lu
2008-07-30 19:16 ` [PATCH 5/7] pci: make irq2_iommu to use dyn_array Yinghai Lu
2008-07-30 19:18 ` [PATCH 7/7] x86: make 64bit support dyn_array Yinghai Lu
2008-07-30 19:27 ` [PATCH 1/7] x86: 64bit support more than 256 irq v1 Yinghai Lu
2008-07-30 19:37 ` [PATCH 3/7] add dyn_array support Yinghai Lu
2008-07-30 19:40 ` [PATCH 6/7] irq: make irq_desc to use dyn_array Yinghai Lu
2008-07-30 19:40 ` [PATCH 4/7] random: make irq_timer_state " Yinghai Lu
2008-07-31 4:09 ` [PATCH 0/3] dyn_array support #2 Yinghai Lu
2008-07-31 4:10 ` [PATCH 1/3] serial: change irq_lists to use dyn_array Yinghai Lu
2008-07-31 5:58 ` Eric W. Biederman
2008-07-31 8:26 ` [PATCH] serial: change remove NR_IRQS in 8250.c Yinghai Lu
2008-07-31 11:50 ` Eric W. Biederman
2008-07-31 13:57 ` Alan Cox
2008-07-31 18:10 ` Eric W. Biederman
2008-07-31 23:15 ` Alan Cox
2008-08-01 3:20 ` Yinghai Lu
2008-07-31 4:11 ` [PATCH 2/3] add per_cpu_dyn_array support Yinghai Lu
2008-07-31 4:12 ` [PATCH 3/3] irq: make irqs in kernel stat use per_cpu_dyn_array Yinghai Lu
2008-07-31 10:14 ` [PATCH] x86 remove irq_vectors_limit.h Yinghai Lu
2008-07-31 16:32 ` [PATCH 0/3] dyn_array support #2 Mike Travis
2008-07-31 18:21 ` Yinghai Lu
2008-07-31 21:51 ` Peter Zijlstra
2008-07-31 22:07 ` Yinghai Lu
2008-07-31 22:25 ` Yinghai Lu
2008-08-01 3:52 ` Yinghai Lu
2008-07-31 22:14 ` Eric W. Biederman
2008-08-01 20:13 ` Eric W. Biederman [this message]
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=m11w18xzly.fsf@frodo.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=akpm@linux-foundation.org \
--cc=dhaval@linux.vnet.ibm.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
--cc=travis@sgi.com \
--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