Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp1231173pxu; Mon, 23 Nov 2020 15:23:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJzEOGvtI2mUxCliIG8S2XIUuxXtHRyx1jtUZuRRhr9/IB8cGKJS2HtsZS5iy17S0OEsYdMS X-Received: by 2002:a17:906:46d2:: with SMTP id k18mr1719872ejs.33.1606173797914; Mon, 23 Nov 2020 15:23:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606173797; cv=none; d=google.com; s=arc-20160816; b=FsZuqzrrr7rvy+ud9HdAM9PiZ/srZ8ngHd5swoC0EYfsRsQcgZJjA8b/rWWfq3mKtb SLe8kYH/EFm+ZzmCZKk4+VNh4Xj+uE2n2MJL/tQ5BT/3md43nDXh3R1ClEYluyFKAP9c OvoaqeM7QZ7k+e6IH8PMYslkKcke6Ev+tyujBrZ9hd5cJRC7wY8+vSSNFw0wSpd3dEGw 7YaNPg24y/zw17koWt1FY13/FjlxM1Pqdg168cZdquMgjZAkPWWHx+SjGybEv6c0cKv+ PnG9hpsjvpyWvedEYKCOJ6FrCVFsmU5Xr2u8RKA+tgGfxtG3IJziYpQ00dQXbeMPJbKv QVGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:user-agent:references:in-reply-to :subject:cc:to:from:date:content-transfer-encoding:mime-version :dkim-signature; bh=KgN1ijqDw3D/voZAsyplEicS0emzndZUvRyPFkKJAPg=; b=SonZ1uo+RlHFmS/KXQyyXIWkOWXnyB6YWBzmU00/Yxr/xv73Gfq0o5R0cclTkTOg/I AqI5/giJCzR5mKFuQFUglce4hjr5PXxgBlX1WNacZTJ5VWtugiTBdhKgeGNJc7dPVgse nY6BRrSetDLtT91mUoKgYRQnAibyeZrONb3p+kLAOqvEIR/Xteo4nG2r1J9CkJOrHs/j b1uE2qKSTgTlMPZPaUic+q2ZNx6ltoO0EsdrFhCP4pZDh3b1QsVpdFf7JitcjNye/LJm 65j4XZr5e1sIBQlVCzpBV1Ez/TI1rEE0nfWR1+ZVgGWr21uu/cytytM4wy2W18MsgD6J 1fVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=OEHWSkSi; 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 f10si7708078edx.567.2020.11.23.15.22.55; Mon, 23 Nov 2020 15:23:17 -0800 (PST) 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; dkim=pass header.i=@kernel.org header.s=default header.b=OEHWSkSi; 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 S1727030AbgKWJ1L (ORCPT + 99 others); Mon, 23 Nov 2020 04:27:11 -0500 Received: from mail.kernel.org ([198.145.29.99]:45782 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726891AbgKWJ1K (ORCPT ); Mon, 23 Nov 2020 04:27:10 -0500 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 952B720773; Mon, 23 Nov 2020 09:27:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1606123629; bh=tKKya71aIfR/58bDPs9+LCebGD0IANotinwA5misRc8=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=OEHWSkSi7cMWAlYqNXglNL846Y+HLs2L4s5husu6wOMdHlTXHEyan0J/Uz0I4zhHS lw+1zMzIfKEQYuRRaLy6ylaou1f7r50dYjm/3NaECxQlTIo+beNuw0O3YoMdBiVr49 sDyUBmAzkajfLoNUb79ttjP07S61K1o8Uk3g0hY8= Received: from disco-boy.misterjones.org ([51.254.78.96] helo=www.loen.fr) by disco-boy.misterjones.org with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94) (envelope-from ) id 1kh87n-00CruO-KX; Mon, 23 Nov 2020 09:27:07 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Mon, 23 Nov 2020 09:27:07 +0000 From: Marc Zyngier To: Shenming Lu Cc: James Morse , Julien Thierry , Suzuki K Poulose , Eric Auger , linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Christoffer Dall , Alex Williamson , Kirti Wankhede , Cornelia Huck , Neo Jia , wanghaibin.wang@huawei.com, yuzenghui@huawei.com Subject: Re: [RFC PATCH v1 3/4] KVM: arm64: GICv4.1: Restore VLPI's pending state to physical side In-Reply-To: <20201123065410.1915-4-lushenming@huawei.com> References: <20201123065410.1915-1-lushenming@huawei.com> <20201123065410.1915-4-lushenming@huawei.com> User-Agent: Roundcube Webmail/1.4.9 Message-ID: <5c724bb83730cdd5dcf7add9a812fa92@kernel.org> X-Sender: maz@kernel.org X-SA-Exim-Connect-IP: 51.254.78.96 X-SA-Exim-Rcpt-To: lushenming@huawei.com, james.morse@arm.com, julien.thierry.kdev@gmail.com, suzuki.poulose@arm.com, eric.auger@redhat.com, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, christoffer.dall@arm.com, alex.williamson@redhat.com, kwankhede@nvidia.com, cohuck@redhat.com, cjia@nvidia.com, wanghaibin.wang@huawei.com, yuzenghui@huawei.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 2020-11-23 06:54, Shenming Lu wrote: > From: Zenghui Yu > > When setting the forwarding path of a VLPI, it is more consistent to I'm not sure it is more consistent. It is a *new* behaviour, because it only matters for migration, which has been so far unsupported. > also transfer the pending state from irq->pending_latch to VPT > (especially > in migration, the pending states of VLPIs are restored into kvm’s vgic > first). And we currently send "INT+VSYNC" to trigger a VLPI to pending. > > Signed-off-by: Zenghui Yu > Signed-off-by: Shenming Lu > --- > arch/arm64/kvm/vgic/vgic-v4.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/arch/arm64/kvm/vgic/vgic-v4.c > b/arch/arm64/kvm/vgic/vgic-v4.c > index b5fa73c9fd35..cc3ab9cea182 100644 > --- a/arch/arm64/kvm/vgic/vgic-v4.c > +++ b/arch/arm64/kvm/vgic/vgic-v4.c > @@ -418,6 +418,18 @@ int kvm_vgic_v4_set_forwarding(struct kvm *kvm, > int virq, > irq->host_irq = virq; > atomic_inc(&map.vpe->vlpi_count); > > + /* Transfer pending state */ > + ret = irq_set_irqchip_state(irq->host_irq, > + IRQCHIP_STATE_PENDING, > + irq->pending_latch); > + WARN_RATELIMIT(ret, "IRQ %d", irq->host_irq); > + > + /* > + * Let it be pruned from ap_list later and don't bother > + * the List Register. > + */ > + irq->pending_latch = false; It occurs to me that calling into irq_set_irqchip_state() for a large number of interrupts can take a significant amount of time. It is also odd that you dump the VPT with the VPE unmapped, but rely on the VPE being mapped for the opposite operation. Shouldn't these be symmetric, all performed while the VPE is unmapped? It would also save a lot of ITS traffic. > + > out: > mutex_unlock(&its->its_lock); > return ret; Thanks, M. -- Jazz is not dead. It just smells funny...