Messages in this thread | | | Date | Sun, 27 Apr 2014 13:50:36 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH v2] X86: Hook apic vector allocation domain only when interrupt routing are set to ignore |
| |
* Oren Twaig <oren@scalemp.com> wrote:
> Hi Ingo, > > On 04/26/2014 09:09 AM, Ingo Molnar wrote: > > I still don't see a clear explanation of what the _user_ saw and sees > > before and after the change. What is the effect of the patch: correct > > IRQ routing (i.e. before the change IRQs would end up on the wrong > > CPU), lower overhead IRQ routing (i.e. before the change IRQ routing > > overhead was more expensive), or something else? > > > > You don't spell this out clearly and it's a crucial piece of > > information that comes before every other explanation. > > > I see.. I tried to explain the entire flow and that was confusing - I'll explain > only the patch. > > As you stated, in general, the patch corrects IRQ routing in case a vSMP > Foundation box is detected but the Interrupt Routing Comply (IRC) is set to > "comply". > > Before the patch: > When a vSMP Foundation box was detected and IRC was set to "comply", users (and > kernel) couldn't effectively set the destination of the IRQs. This is because > the hook inside vsmp_64.c always setup all CPUs as the IRQ destination using > cpumask_setall() as the return value for IRQ allocation mask. Later, this > "overrided" mask caused the kernel to set the IRQ destination to the lowest > online CPU in the mask (CPU0 usually). > > After the patch: > When the IRC is set to "comply", Users (and kernel) can control the destination > of the IRQs as we will not be changing the default > "apic->vector_allocation_domain".
Much better, thanks!
Ingo
| |