Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757097AbbEEJHV (ORCPT ); Tue, 5 May 2015 05:07:21 -0400 Received: from mail-la0-f41.google.com ([209.85.215.41]:35877 "EHLO mail-la0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1031094AbbEEJHK (ORCPT ); Tue, 5 May 2015 05:07:10 -0400 MIME-Version: 1.0 In-Reply-To: <55477B86.70705@linux.intel.com> References: <1430709339-29083-1-git-send-email-jiang.liu@linux.intel.com> <1430709339-29083-8-git-send-email-jiang.liu@linux.intel.com> <55477B86.70705@linux.intel.com> Date: Tue, 5 May 2015 12:07:08 +0300 X-Google-Sender-Auth: xHRP497-vZYczkXS5xahOiFQ9H8 Message-ID: Subject: Re: [RFC v1 07/11] net/mlx4: Cache irq_desc->affinity instead of irq_desc From: Amir Vadai To: Jiang Liu Cc: Amir Vadai , 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 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2076 Lines: 52 On Mon, May 4, 2015 at 5:00 PM, Jiang Liu wrote: > 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? No - you are completely right - I missed it. Anyway I tested it to make sure, and everything works as expected. Acked-By: Amir Vadai Thanks, Amir > Thanks! > Gerry >> >> Thanks, >> Amir >> > -- > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- 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/