Re: [PATCH v2 1/2] ARC: SMP: Set the default affinity to the boot cpu

From: Vineet Gupta
Date: Tue Dec 13 2016 - 12:40:34 EST

Hi Yuriy,

On 12/09/2016 01:59 AM, Yuriy Kolerov wrote:
> By default the kernel sets a value for default affinity which may
> not correspond to the real bitmap of potentially online CPUs. E.g.
> for ARC HS processors with 2 cores the default value of affinity in
> the kernel may be 0xF and it is wrong in this case. This happens
> because init_irq_default_affinity() sets all bits in
> irq_default_affinity variable by default.
> It is better to set the default value of affinity to the boot core
> to guarantee that value of irq_default_affinity contains at least
> one valid online CPU during the early stage of booting. It is
> necessary for proper configuration of affinity for common interrupt.
> Signed-off-by: Yuriy Kolerov <yuriy.kolerov@xxxxxxxxxxxx>
> ---
> arch/arc/kernel/irq.c | 6 ++++++
> 1 file changed, 6 insertions(+)
> diff --git a/arch/arc/kernel/irq.c b/arch/arc/kernel/irq.c
> index 538b36a..e53bfd5 100644
> --- a/arch/arc/kernel/irq.c
> +++ b/arch/arc/kernel/irq.c
> @@ -20,6 +20,12 @@
> */
> void __init init_IRQ(void)
> {
> +#ifdef CONFIG_SMP
> + /* Set the default affinity to the boot cpu. */
> + cpumask_clear(irq_default_affinity);
> + cpumask_set_cpu(smp_processor_id(), irq_default_affinity);
> +#endif
> +
> /*
> * process the entire interrupt tree in one go
> * Any external intc will be setup provided DT chains them

For a multi patch series, always include a cover letter. This gives an idea of
over intent of the series.
Also there is no record of what changed between v1 and v2. Reviewers typically
have a short memory span :-)
Also try to include all the reviewers: in this case Marc Z gave very good feedback
and direction for patches.
This is just a general lkml submission best practice !

Now on to the patch itself, I don't like arch code fudging a core genirq global
variable. If at all this needs to be moved into core code - assuming this is the
right thing to do !

Marc , tglx ?