Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752908AbbEDOA5 (ORCPT ); Mon, 4 May 2015 10:00:57 -0400 Received: from mga09.intel.com ([134.134.136.24]:39575 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751976AbbEDOAs (ORCPT ); Mon, 4 May 2015 10:00:48 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,366,1427785200"; d="scan'208";a="723307243" Message-ID: <55477B86.70705@linux.intel.com> Date: Mon, 04 May 2015 22:00:38 +0800 From: Jiang Liu Organization: Intel User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: Amir Vadai CC: Thomas Gleixner , 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 References: <1430709339-29083-1-git-send-email-jiang.liu@linux.intel.com> <1430709339-29083-8-git-send-email-jiang.liu@linux.intel.com> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1574 Lines: 37 On 2015/5/4 20:10, 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. 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//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-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/