Re: [PATCH RESEND] x86/fixup_irq: Clean the offlining CPU from theirq affinity mask

From: Srivatsa S. Bhat
Date: Thu Sep 27 2012 - 16:34:02 EST


On 09/28/2012 12:50 AM, Suresh Siddha wrote:
> On Fri, 2012-09-28 at 00:12 +0530, Srivatsa S. Bhat wrote:
>> On 09/27/2012 04:16 AM, Suresh Siddha wrote:
>>>
>>> No. irq_set_affinity()
>>>
>>
>> Um? That takes the updated/changed affinity and sets data->affinity to
>> that value no? You mentioned that probably the intention of the original
>> code was to preserve the user-set affinity mask, but still change the
>> underlying interrupt routing. Sorry, but I still didn't quite understand
>> what is that part of the code that achieves that.
>
> For the HW routing to be changed we AND it with cpu_online_map and use
> that for programming the interrupt entries etc.

Ah, now I see.. you were referring to the __assign_irq_vector() code, whereas
I was looking only at fixup_irqs() and was trying to find the code that did
what you said.. that's what got me confused earlier :-)

> The user-specified
> affinity still has the cpu that is offlined.
>

Right, so data->affinity is untouched, whereas cfg->domain is updated when
the CPU is offlined..

> And when the cpu comes online and if it is part of the user-specified
> affinity, then the HW routing can be again modified to include the new
> cpu.
>

Right, got it.

> hope this clears it!
>

Yep, thanks a lot!

Regards,
Srivatsa S. Bhat

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/