On 2015/5/4 20:10, Amir Vadai wrote: > On Mon, May 4, 2015 at 6:15 AM, Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx> wrote: >> The field 'affinity' in irq_desc won't change once the irq_desc data >> structure is created. So cache irq_desc->affinity instead of irq_desc. >> This also helps to hide struct irq_desc from device drivers. > > Hi Jiang, > > I might not understand the new changes irq core, but up until now > affinity was changed when the user changed it through > /proc/irq/<IRQ>/smp_affinity. > This code is monitoring the affinity from the napi_poll context to > detect affinity changes, and prevent napi from keep running on the > wrong CPU. > Therefore, the affinity can't be cached at the beginning. Please > revert this caching. Hi Amir, Thanks for review:) We want to hide irq_desc implementation details from device drivers, so made these changes. Function irq_get_affinity_mask() returns 'struct cpumask *' and we cache the returned pointer. On the other hand, user may change IRQ affinity through /proc/irq/<IRQ>/smp_affinity, but that only changes the bitmap pointed to by the cached pointer and won't change the pointer itself. So it should always return the latest affinity setting by calling cpumask_test_cpu(cpu_curr, cq->irq_affinity). Or am I missing something here? Thanks! Gerry > > Thanks, > Amir > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html