Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2994164AbbEEQIQ (ORCPT ); Tue, 5 May 2015 12:08:16 -0400 Received: from www.linutronix.de ([62.245.132.108]:50259 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2993264AbbEEOx6 (ORCPT ); Tue, 5 May 2015 10:53:58 -0400 Date: Tue, 5 May 2015 16:53:33 +0200 (CEST) From: Thomas Gleixner To: Amir Vadai cc: Jiang Liu , Bjorn Helgaas , Benjamin Herrenschmidt , Ingo Molnar , "H. Peter Anvin" , "Rafael J. Wysocki" , Randy Dunlap , Yinghai Lu , Borislav Petkov , Ido Shamay , "David S. Miller" , Or Gerlitz , Eric Dumazet , Hadar Hen Zion , Eran Ben Elisha , Joe Perches , Saeed Mahameed , Matan Barak , Konrad Rzeszutek Wilk , Tony Luck , x86@kernel.org, "linux-kernel@vger.kernel.org" , linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, netdev Subject: Re: [RFC v1 07/11] net/mlx4: Cache irq_desc->affinity instead of irq_desc In-Reply-To: Message-ID: References: <1430709339-29083-1-git-send-email-jiang.liu@linux.intel.com> <1430709339-29083-8-git-send-email-jiang.liu@linux.intel.com> User-Agent: Alpine 2.11 (DEB 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001,URIBL_BLOCKED=0.001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1965 Lines: 52 On Tue, 5 May 2015, Amir Vadai wrote: > On Mon, May 4, 2015 at 6:10 PM, Thomas Gleixner wrote: > > On Mon, 4 May 2015, Amir Vadai wrote: > > > >> On Mon, May 4, 2015 at 6:15 AM, Jiang Liu 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//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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/