On Wed, 2008-03-26 at 13:55 -0500, Alan Mayer wrote:Well I will agree with Linus and go one farther and say that NR_IRQS needs to die. I started on that once and x86 is just about ready to accomodate it. There is a size issue on small machines. And there is very bad NUMA affinity on large machines. So the current structure really is not optimal for anyone. All of this gets especially bad for distro kernels that try and support everything. Also MAX_IOAPICS is very much the wrong factor to be using on large machines to size the irq array. New machines are moving towards MSI and cards can have an unreasonable number of MSI irqs. In practice the top end I have seen is 20-30 per card but it is still a lot. So I think you may get a nasty surprise when you plug in a bunch of high performance cards with multiple queues into a big box. The 32*NR_CPUS as a rule of thumb comes from IBM boxes that are a little better balanced when it comes to compute vs. I/O capablility. For actual irq reception we have our per cpu array of vectors that point to the irq_desc so even if the global list of irqs was a linked list we should not have performance problems. I need to do some sorting out of sysfs first but I will certainly see if I can look at this again. And I will very much be willing to work with someone else who wants to work on this and has more time then I do at the moment. The basic idea is moving the generic irq apis to a point where we can refer to irqs in the generic code with a struct irq * instead of by number. We really only the need the number for talking about irqs to user space. Eric --
| Peter Zijlstra | Re: [15/17] SLUB: Support virtual fallback via SLAB_VFALLBACK |
| Christoph Lameter | Re: crash in kmem_cache_init |
| Greg Kroah-Hartman | [PATCH 017/196] aoechr: Convert from class_device to device |
| David Miller | Re: [patch 0/7] [RFC] SLUB: Improve allocpercpu to reduce per cpu access overhead |
git: | |
| Raimund Bauer | [wishlist] graphical diff |
| Johannes Schindelin | Re: A tour of git: the basics (and notes on some unfriendly messages) |
| Pazu | qgit on Mac OS X |
| pradeep singh rautela | Re: Why does git track directory listed in .gitignore/".git/info/exclude"? |
| Stephen Pierce | SLS |
| Theodore Ts'o | Re: demand paging: proposal |
| Dong Liu | Re: CXterm for LINUX |
| Marc G Fournier | Re: Reducing traffic on c.o.l.; splitting c.o.l |
| Markus Wernig | host to host ipsec link |
| Beavis | mutiple pptp pass-through PF |
| Todd Pytel | IDE or SCSI virtual disks for VMWare image? |
| Sam Fourman Jr. | Asus Striker Extreme does not support 4GB memory |
| magical mounts | 12 hours ago | Linux kernel |
| Problem in scim in Fedora 9 | 13 hours ago | Linux general |
| The new Western Digital power saving drives | 13 hours ago | Hardware |
| Battery Maximizer Software | 1 day ago | Linux kernel |
| windows folder creation surprise | 1 day ago | Windows |
| Firewall | 2 days ago | OpenBSD |
| IP layer send packet | 2 days ago | Linux kernel |
| dtrace for linux available | 3 days ago | Linux kernel |
| Unable to mount ramdisk image using UBoot while upgrading to 2.6.15 kernel for a MPC8540 based target | 3 days ago | Linux kernel |
| RealTek RTL8169 - can't connect | 3 days ago | NetBSD |
