On Wed, 26 Mar 2008, Pavel Machek wrote:I do agree that it's ugly, but I think the ugliness is more serious than that. What I think we should do is to make NR_IRQS no longer be a compile-time constant, but instead just do something like unsigned int NR_IRQS __read_mostly; and then just set it early in the boot sequence depending on the real CPU numbers etc. I realize that this will require some changes to a few arrays that are statically allocated and depend on NR_IRQ's (notably "irq_desc"), but don't you guys think that this would be a cleaner thing? [ I suspect that irq_desc[] itself could quite reasonably be a rather much smaller __read_mostly hash-table of dynamically allocated entries - the thing would be only modified at boot, so it should cache beautifully even across hundreds of CPU's ] Whatever. I'm not opposed to this whole static thing, but I do wonder if it's worth doing that way. There *may* be performance reasons for doing it the way we're doing it, but quite frankly, I think the #define is mostly purely historical, from when it was just a fixed number (originally 16!) and it made sense to think of it as a small static array. Linus --
| Benjamin Herrenschmidt | Re: [PATCH] Remove process freezer from suspend to RAM pathway |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Mariusz Kozlowski | [PATCH 03] drivers/sbus/char/bbc_envctrl.c: kmalloc + memset conversion to kzalloc |
| Yinghai Lu | [PATCH 02/16] x86: introduce nr_irqs for 64bit v3 |
git: | |
| Gerrit Renker | [PATCH 13/37] dccp: Deprecate Ack Ratio sysctl |
| James Morris | Re: [GIT]: Networking |
| Jeff Garzik | Re: [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
