From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753372AbbIGCEH (ORCPT ); Sun, 6 Sep 2015 22:04:07 -0400 Received: from szxga01-in.huawei.com ([58.251.152.64]:2155 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752978AbbIGCEE (ORCPT ); Sun, 6 Sep 2015 22:04:04 -0400 Subject: Re: [RFC PATCH v1 2/4] irqchip: GICv3: set non-percpu irqs status with _IRQ_MOVE_PCNTXT To: Jiang Liu , , References: <1441513421-8092-1-git-send-email-yangyingliang@huawei.com> <1441513421-8092-3-git-send-email-yangyingliang@huawei.com> <55EBD59B.4030405@linux.intel.com> CC: Thomas Gleixner , Marc Zyngier , Mark Rutland , Will Deacon , Russell King - ARM Linux , Hanjun Guo From: Yang Yingliang Message-ID: <55ECF085.7020708@huawei.com> Date: Mon, 7 Sep 2015 10:03:49 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <55EBD59B.4030405@linux.intel.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.177.19.219] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2015/9/6 13:56, Jiang Liu wrote: > 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 I am not certain sure if GICv3 supports it. But current code consider it as true default without CONFIG_GENERIC_PENDING_IRQ enable on arm. Does Marc have any opinion ? Thanks Yang > >> >> 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; >> > > . >