On 5/5/2015 5:53 PM, Thomas Gleixner wrote: > On Tue, 5 May 2015, Amir Vadai wrote: > >> On Mon, May 4, 2015 at 6:10 PM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote: >>> On Mon, 4 May 2015, 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. >>> >>> Sigh. All of this is completely wrong. Polling in the internals of >>> irq_desc is just crap. >> Hi, >> >>> >>> irq_set_affinity_notifier() has been added for exactly this purpose. >> rmap is already registered on irq_set_affinity_notifier(). >> Actually, I did post an extension to the affinity notifier, to use >> affinity chain which you rejected [1] (and BTW, convinced me that this >> is not the way to do it). >> Current code is according to your suggestion. >> >> [1] - https://lkml.org/lkml/2014/5/26/222 > > No, it's not. I wrote: > > "So what's the point of adding notifier call chain complexity, > ordering problems etc., if you can simply note the fact that the > affinity changed in the rmap itself and check that in the RX path?" > > I did not tell you to fiddle in irqdesc, really. > > Thanks, > > tglx > It is problematic, since I didn't want to link the napi polling affinity issue and CONFIG_CPU_RMAP being selected. That's why I CC'd you when submitted the patch [1]. Guess it was my bad that I didn't do it in a better way that would give you a chance to fully review it. Anyway, I understand now that I shouldn't access irqdesc attributes from a device driver. I will see if I can live with disabling this whole feature (migrate a currently looping NAPI when affinity is changed), when CONFIG_CPU_RMAP is not selected. If not, I might modify the rmap code to give me this information even when it is not selected. I assume that rmap notifier callback can access this information. Thanks, Amir -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html