Re: [PATCH 00/16] dyn_array and nr_irqs support v2

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Yinghai Lu <yhlu.kernel@...>
Cc: Ingo Molnar <mingo@...>, Thomas Gleixner <tglx@...>, hpa <hpa@...>, Dhaval Giani <dhaval@...>, Mike Travis <travis@...>, Andrew Morton <akpm@...>, <linux-kernel@...>
Date: Friday, August 1, 2008 - 9:41 pm

"Yinghai Lu" <yhlu.kernel@gmail.com> writes:


Yes.  Which is 1024 irq sources/gsis only 1/4 used so it will fit into 256 irqs.

On x86_64 we have removed the confusing and brittle irq compression
code.  So to handle that many irqs we would need 1024 irqs.

I expect modern big systems that can only run x86_64 are larger still.


Or we place irq_desc in irq_cfg.


Nah.  We lookup whatever it we need in the 256 entry vector_irq table.
I expect we can do the container_of trick beyond that.

If the helper which we should only see on the slow path is a bottleneck
we can easily turn organize irq_desc into a tree structure.  Ultimately
I think we want drivers to have a struct irq *irq pointer but we need
to get the arch backend working first.


Certainly there is the potential to simplify things.


The thing is there is no good upper bound of how many irqs we can see
short of of NR_PCI_DEVICES*4096



Yes.  Currently for the current worst case it requires 16 cpus.
The biggest I have heard a card using at this point is 256 irqs.
At lot of the goal in those cards is so they can have 2 irqs per cpu.
1 rx irq and 1 tx irq.  Allowing them to implement per cpu queues.


Yes.  But we can put all the arch specific code in irq_cfg, and put
irq_desc in irq_cfg.


Which is usable, but no where near as nice as not having a fixed upper bound.



No. The destination cpu and destination vector number are encoded in
the MSI message.  Each MSI-X source ``vector'' has a different MSI message.

So on my wish list is to stably encode the MSI interurrpt numbers.  And
using a sparse irq address space I can.  As it only takes 28 bits to hold
the complete bus + device + function + msi source [ 0-4095 ] 

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

Messages in current thread:
[PATCH 00/16] dyn_array and nr_irqs support v2, Yinghai Lu, (Fri Aug 1, 5:37 am)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Eric W. Biederman, (Fri Aug 1, 4:46 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Yinghai Lu, (Fri Aug 1, 10:58 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Mike Travis, (Fri Aug 1, 5:47 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Yinghai Lu, (Fri Aug 1, 5:30 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Eric W. Biederman, (Fri Aug 1, 6:38 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Yinghai Lu, (Fri Aug 1, 9:09 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Eric W. Biederman, (Fri Aug 1, 9:41 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Mike Travis, (Mon Aug 4, 8:57 am)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, H. Peter Anvin, (Mon Aug 4, 10:38 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Eric W. Biederman, (Mon Aug 4, 11:40 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, H. Peter Anvin, (Mon Aug 4, 11:48 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Yinghai Lu, (Fri Aug 1, 10:01 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, H. Peter Anvin, (Fri Aug 1, 10:03 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Eric W. Biederman, (Fri Aug 1, 10:39 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, H. Peter Anvin, (Fri Aug 1, 11:28 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Eric W. Biederman, (Sat Aug 2, 12:42 am)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, H. Peter Anvin, (Sat Aug 2, 11:41 am)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Eric W. Biederman, (Sat Aug 2, 4:20 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, H. Peter Anvin, (Fri Aug 1, 9:36 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Yinghai Lu, (Fri Aug 1, 6:10 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Yinghai Lu, (Fri Aug 1, 5:57 pm)
Re: [PATCH 00/16] dyn_array and nr_irqs support v2, Eric W. Biederman, (Fri Aug 1, 6:45 pm)
[PATCH 01/16] x86: 64bit support more than 256 irq, Yinghai Lu, (Fri Aug 1, 5:37 am)
[PATCH 02/16] x86: introduce nr_irqs for 64bit v3, Yinghai Lu, (Fri Aug 1, 5:37 am)
[PATCH 03/16] add dyn_array support, Yinghai Lu, (Fri Aug 1, 5:37 am)
[PATCH 04/16] make irq_timer_state to use dyn_array, Yinghai Lu, (Fri Aug 1, 5:37 am)
[PATCH 05/16] make irq2_iommu to use dyn_array, Yinghai Lu, (Fri Aug 1, 5:37 am)
[PATCH 06/16] make irq_desc to use dyn_array, Yinghai Lu, (Fri Aug 1, 5:37 am)
[PATCH 07/16] x86: make 64bit support dyn_array, Yinghai Lu, (Fri Aug 1, 5:37 am)
[PATCH 09/16] add per_cpu_dyn_array support, Yinghai Lu, (Fri Aug 1, 5:37 am)