From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751403AbbIFF47 (ORCPT ); Sun, 6 Sep 2015 01:56:59 -0400 Received: from mga14.intel.com ([192.55.52.115]:37482 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751238AbbIFF4q (ORCPT ); Sun, 6 Sep 2015 01:56:46 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,478,1437462000"; d="scan'208";a="639481004" Subject: Re: [RFC PATCH v1 2/4] irqchip: GICv3: set non-percpu irqs status with _IRQ_MOVE_PCNTXT To: Yang Yingliang , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <1441513421-8092-1-git-send-email-yangyingliang@huawei.com> <1441513421-8092-3-git-send-email-yangyingliang@huawei.com> Cc: Thomas Gleixner , Marc Zyngier , Mark Rutland , Will Deacon , Russell King - ARM Linux , Hanjun Guo From: Jiang Liu Organization: Intel Message-ID: <55EBD59B.4030405@linux.intel.com> Date: Sun, 6 Sep 2015 13:56:43 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <1441513421-8092-3-git-send-email-yangyingliang@huawei.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2015/9/6 12:23, Yang Yingliang wrote: > Use irq_settings_set_move_pcntxt() helper irqs status with > _IRQ_MOVE_PCNTXT. So that it can do set affinity when calling > irq_set_affinity_locked(). Hi Yingliang, We could only set _IRQ_MOVE_PCNTCT flag to enable migrating IRQ in process context if your hardware platform supports atomically change IRQ configuration. Not sure whether that's true for GICv3. If GICv3 doesn't support atomically change irq configuration, this change may cause trouble. Thanks! Gerry > > Cc: Jiang Liu > Cc: Thomas Gleixner > Cc: Marc Zyngier > Cc: Mark Rutland > Cc: Will Deacon > Cc: Russell King - ARM Linux > Cc: Hanjun Guo > Signed-off-by: Yang Yingliang > --- > drivers/irqchip/irq-gic-v3.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c > index e406bc5..9108387 100644 > --- a/drivers/irqchip/irq-gic-v3.c > +++ b/drivers/irqchip/irq-gic-v3.c > @@ -688,6 +688,7 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq, > irq_domain_set_info(d, irq, hw, &gic_chip, d->host_data, > handle_fasteoi_irq, NULL, NULL); > set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); > + irq_set_move_pcntxt(irq); > } > /* LPIs */ > if (hw >= 8192 && hw < GIC_ID_NR) { > @@ -696,6 +697,7 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq, > irq_domain_set_info(d, irq, hw, &gic_chip, d->host_data, > handle_fasteoi_irq, NULL, NULL); > set_irq_flags(irq, IRQF_VALID); > + irq_set_move_pcntxt(irq); > } > > return 0; >