On Mon, May 4, 2015 at 5:00 PM, Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx> wrote: > 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? No - you are completely right - I missed it. Anyway I tested it to make sure, and everything works as expected. Acked-By: Amir Vadai <amirv@xxxxxxxxxxxx> Thanks, Amir > Thanks! > Gerry >> >> Thanks, >> Amir >> > -- > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- 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