login
Header Space

 
 

Re: [PATCH] x86_64: resize NR_IRQS for large machines

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Alan Mayer <ajm@...>
Cc: Linus Torvalds <torvalds@...>, Pavel Machek <pavel@...>, <mingo@...>, linux-kernel list <linux-kernel@...>, Robin Holt <holt@...>, Jack Steiner <steiner@...>, Russ Anderson <rja@...>
Date: Saturday, April 12, 2008 - 4:12 pm

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


--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] x86_64: resize NR_IRQS for large machines, Alan Mayer, (Mon Mar 24, 10:31 am)
Re: [PATCH] x86_64: resize NR_IRQS for large machines, Pavel Machek, (Tue Mar 25, 7:10 pm)
Re: [PATCH] x86_64: resize NR_IRQS for large machines, Linus Torvalds, (Wed Mar 26, 12:29 pm)
Re: [PATCH] x86_64: resize NR_IRQS for large machines, Eric W. Biederman, (Sat Apr 12, 4:12 pm)
Re: [PATCH] x86_64: resize NR_IRQS for large machines, Ingo Molnar, (Tue Mar 25, 12:19 pm)
Re: [PATCH] x86_64: resize NR_IRQS for large machines, Alan Mayer, (Tue Mar 25, 12:24 pm)
speck-geostationary