Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp404237pxt; Thu, 12 Aug 2021 00:53:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx6258Np0f7x4DDm4RrVaznX3ALoXtP9lwYop+yygIaSaxvoFr3l2O8HrAFgscRJas52Ez1 X-Received: by 2002:a17:906:3c59:: with SMTP id i25mr2367505ejg.311.1628754807325; Thu, 12 Aug 2021 00:53:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628754807; cv=none; d=google.com; s=arc-20160816; b=TbpNd01mA1bGR05WngBDquJbzrwHmItnbpHQMCJ7TcNStAl5ODidZNsflSAgT+7t75 83UCPFYIQ+SyCIjLx04oJ6pLGD7ss87kqpSeXbbcGcbVdciRZgfJfRD44O6LSQtFGbOU ZwdzDBvYo0ReEvg8pQjej+PXzlcGJL7ZuhDBpQ/7syVHP/rLAXqw03P29oQKyEKYE7gF bxVXrPfaKt/yxLLvJVykQAyPWmpxlfmnG32AIqF/fgGOpPHupxQuFrnEBOLmEWFS8nu7 9JOAPMfUrxAEEMTtdlv+IfqYKvr4kgf4FLIaYaF78HdsdcpYbxcJpeE8+fandbv67VXW nauQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent:references:in-reply-to :subject:cc:to:from:message-id:date; bh=g7x5dqO1DIuMdvvPkrhPY0FLpXFXg4kIsAUj4bNEh4w=; b=jAsNQIt6WwU+sVPhbK/VaMDprC6yNxXlsLo4DxPLjZGiZ1H+14w2aVicP6szLUsVGQ KRFN/AsEKymLRuvabxs4oNLwBs8RSV9X3KLJi/gQXO/p/1v9KG9qExgP8PsMJMgvn3JN PaLF4lY1lPuQW7FbRcIilArRjtWPIS5prBs7QzBSmaKsap7Yz6aumzRe4rsBXqMp6SXV tdz4mzN31YHGFAOOOeS6v8jCqH/pmQD3pPwqifKokqeACVUfrbgYD4l46NCxkysrjl8l ne7NzRbEXg/y+mxHlZsyWYDfPNdIReepVuoECspCLZT3wVFR3nJDunr1o8Pdazlh1Lrr mLUg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id rn6si1942627ejb.16.2021.08.12.00.53.03; Thu, 12 Aug 2021 00:53:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234488AbhHLHtf (ORCPT + 99 others); Thu, 12 Aug 2021 03:49:35 -0400 Received: from mail.kernel.org ([198.145.29.99]:59760 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232348AbhHLHtc (ORCPT ); Thu, 12 Aug 2021 03:49:32 -0400 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1EE1A6044F; Thu, 12 Aug 2021 07:49:08 +0000 (UTC) Received: from sofa.misterjones.org ([185.219.108.64] helo=why.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mE5Sc-004Ukj-AH; Thu, 12 Aug 2021 08:49:06 +0100 Date: Thu, 12 Aug 2021 08:49:05 +0100 Message-ID: <87a6ln9k7i.wl-maz@kernel.org> From: Marc Zyngier To: Valentin Schneider Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Thomas Gleixner , Lorenzo Pieralisi , Vincenzo Frascino Subject: Re: [PATCH v3 02/13] genirq: Define ack_irq() and eoi_irq() helpers In-Reply-To: <20210629125010.458872-3-valentin.schneider@arm.com> References: <20210629125010.458872-1-valentin.schneider@arm.com> <20210629125010.458872-3-valentin.schneider@arm.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: valentin.schneider@arm.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, tglx@linutronix.de, lorenzo.pieralisi@arm.com, vincenzo.frascino@arm.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 29 Jun 2021 13:49:59 +0100, Valentin Schneider wrote: > > The newly-added IRQCHIP_AUTOMASKS_FLOW flag requires some additional > bookkeeping around chip->{irq_ack, irq_eoi}() calls. Define wrappers around > those chip callbacks to drive the IRQD_IRQ_FLOW_MASKED state of an IRQ when > the chip has the IRQCHIP_AUTOMASKS_FLOW flag. > > Signed-off-by: Valentin Schneider > --- > kernel/irq/chip.c | 16 ++++++++++++++++ > kernel/irq/internals.h | 2 ++ > 2 files changed, 18 insertions(+) > > diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c > index 21a21baa1366..793dbd8307b9 100644 > --- a/kernel/irq/chip.c > +++ b/kernel/irq/chip.c > @@ -408,6 +408,22 @@ void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu) > cpumask_clear_cpu(cpu, desc->percpu_enabled); > } > > +void ack_irq(struct irq_desc *desc) > +{ > + desc->irq_data.chip->irq_ack(&desc->irq_data); > + > + if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW) > + irq_state_set_flow_masked(desc); > +} > + > +void eoi_irq(struct irq_desc *desc) > +{ > + desc->irq_data.chip->irq_eoi(&desc->irq_data); > + > + if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW) > + irq_state_clr_flow_masked(desc); I just realised that this has a good chance to result in a mess with KVM, and specially the way we let the vGIC deactivate an interrupt directly from the guest, without any SW intervention (the magic HW bit in the LRs). With this, interrupts routed to a guest (such as the timers) will always have the IRQD_IRQ_FLOW_MASKED flag set, which will never be cleared. I wonder whether this have a chance to interact badly with mask/unmask, or with the rest of the flow... Thanks, M. -- Without deviation from the norm, progress is not possible.