Messages in this thread | | | Date | Thu, 21 Jun 2012 13:00:55 +0200 | From | Alexander Gordeev <> | Subject | Re: [PATCH 1/2] x86, irq: update irq_cfg domain unless the new affinity is a subset of the current domain |
| |
On Tue, Jun 19, 2012 at 05:18:42PM -0700, Suresh Siddha wrote: > On Mon, 2012-06-18 at 17:51 -0700, Suresh Siddha wrote: > BTW, there is still one open that I would like to address. How to handle > the vector pressure during boot etc (as the default vector assignment > specifies all online cpus) when there are lot interrupt sources but > fewer x2apic clusters (like one or two socket server case). > > We should be able to do something like the appended. Any better > suggestions? I don't want to add boot parameters to limit the x2apic > cluster membership etc (to fewer than 16 logical cpu's) if possible.
This cpu_online_mask approach should work IMO. Although it looks little bit hacky for me. May be we could start with default_vector_allocation_domain() and explicitly switch to cluster_vector_allocation_domain() once booted?
As of boot parameters, I can think of multi-pass walk thru a cpumask to find a free cluster => core => sibling. In worst case I can imagine a vector space defragmentator. But nothing really small to avoid current code reshake.
Also, how heavy the vector pressure actually is?
-- Regards, Alexander Gordeev agordeev@redhat.com
| |