From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 040C8C433FE for ; Tue, 29 Nov 2022 21:02:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=BNZS1zRGAR6W2rQ3u7dbGqeXj9Zha7g+2ETy/vim2U8=; b=Fqj8PQ0gcl4Y5u +C7+dz4MiZ5Tj60cDKXJBwcsG/9iRJDpLs9/TwgHHwQyqPIrLXYOJr5RGUebi0NjYC02rdBakieOv xlj0/ZdKo01hpMt9gGUXJSsGqhgMYbWJS7k9LSXvIph8IsMhtC49sfM64ofOm3DhbIOPPRautd7OY k19qU5IWLzeTfamMuRnCXRTly/ig6O3VHRJAgq+0WIe9GCFfjNZzs/PCyZxNHHKsKzH+jjEIq7WsR XPT/T/ZeGa/cL8psNs1Nqx2FvhrHjY5nKZt2arnmPC/OpAcxzwwdJqXt8fLVWeTbpeoCFnF0KXc0y RkGZ5Xe4Cy324wJlY6wA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p07iv-00BKZ5-CW; Tue, 29 Nov 2022 21:01:01 +0000 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1p07iq-00BKXi-EO for linux-arm-kernel@lists.infradead.org; Tue, 29 Nov 2022 21:01:00 +0000 Received: by mail-pf1-x431.google.com with SMTP id h28so1303827pfq.9 for ; Tue, 29 Nov 2022 13:00:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=Cv7bP6Ykoos9p/GSChQ3hTQpD+T90m2BXvicS8ztKkY=; b=LjZa0NyucvKgdFLDZuq/BMDOGwBjA+nS/RFT6FpAkCYZ7VfBn0Zxee9PeRD82I1fN8 E1bQmWmUQrYGjJni2jrPozVvZT6FDGsqjfy66v3/QQydBYikDmMXH+ULHSk0nfg5QSgP h2iuulqYQXz4Su5XKM7uealW6p3CrNk550WHCTnvyoaxLQ2nrEZ/yq8ti7QR4HBj3SgA e2RMNQY1NIW38zpdVC5XjX/JXKOVp5mVsxFXRDDscvhzdzCyA92Vs9g2XJUGfFl2xb2C kMb9AoRdkWS7O20ZHucbwBET0m1JZX9LwgAZUQyQ6um1Fl+numP+ifFobdYTGf4+VA8/ rP2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Cv7bP6Ykoos9p/GSChQ3hTQpD+T90m2BXvicS8ztKkY=; b=MFCVK9UkevCFaSaHz+IKnkK07bYtfshrG8mTYz5I3D1I9rCPPTOB7mhRw5+URTOZ/m stNjjxJOdhigR6nJWpOpNtgRK9XG4ZoTUEmPoXiEklFTl8Bg6PcPxIKvQ+0o4/BwfET3 4Un/zt4+LOjwK7YvlEe9Xcsmt0LpQ2+NhVNBvp6CfGx+/ag3P49X+F3/fdllnVzj4tvE AQlWCiBE9Jmsx8l2FTiWk7UpMYMTZvxTZB9/odQPlMDmUfk8TiZzEsGIwZ0SuvvDyV6c gOZ5bxbbp4pBuJZr3LRS4c4kyGExf7TpynnW+lSOPlUrmJDyBMOyuh05HrRmzMCcK/3d 3MAw== X-Gm-Message-State: ANoB5pk179mfUQQ5CTEIWZIpfLDbph4mCbkQady8r9qOw1RmIwbDDdpu Kce+PrkJwpzgi1YMuWZMg0sJKw== X-Google-Smtp-Source: AA0mqf6LGlNdkJlLDcwfP4oo7asFABbkB+ZP9oQrvqjFFePdLkCPII5mdqk5RqRXD5AGhShcjzDHXg== X-Received: by 2002:a63:5a62:0:b0:476:ed2a:6215 with SMTP id k34-20020a635a62000000b00476ed2a6215mr34342882pgm.559.1669755648622; Tue, 29 Nov 2022 13:00:48 -0800 (PST) Received: from google.com (220.181.82.34.bc.googleusercontent.com. [34.82.181.220]) by smtp.gmail.com with ESMTPSA id f14-20020a170902ce8e00b0018957322953sm11407727plg.45.2022.11.29.13.00.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Nov 2022 13:00:48 -0800 (PST) Date: Tue, 29 Nov 2022 13:00:44 -0800 From: Ricardo Koller To: Oliver Upton Cc: Marc Zyngier , James Morse , Alexandru Elisei , Suzuki K Poulose , Catalin Marinas , Will Deacon , kvmarm@lists.linux.dev, linux-kernel@vger.kernel.org, kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org Subject: Re: [PATCH 3/4] KVM: arm64: Handle access faults behind the read lock Message-ID: References: <20221129191946.1735662-1-oliver.upton@linux.dev> <20221129191946.1735662-4-oliver.upton@linux.dev> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221129191946.1735662-4-oliver.upton@linux.dev> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221129_130056_504236_E1D2E399 X-CRM114-Status: GOOD ( 18.85 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Tue, Nov 29, 2022 at 07:19:45PM +0000, Oliver Upton wrote: > As the underlying software walkers are able to traverse and update > stage-2 in parallel there is no need to serialize access faults. > > Only take the read lock when handling an access fault. > > Signed-off-by: Oliver Upton > --- > arch/arm64/kvm/hyp/pgtable.c | 2 +- > arch/arm64/kvm/mmu.c | 4 ++-- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtable.c > index 9626f615d9b8..1a3dd9774707 100644 > --- a/arch/arm64/kvm/hyp/pgtable.c > +++ b/arch/arm64/kvm/hyp/pgtable.c > @@ -1097,7 +1097,7 @@ kvm_pte_t kvm_pgtable_stage2_mkyoung(struct kvm_pgtable *pgt, u64 addr) > int ret; > > ret = stage2_update_leaf_attrs(pgt, addr, 1, KVM_PTE_LEAF_ATTR_LO_S2_AF, 0, > - &pte, NULL, 0); > + &pte, NULL, KVM_PGTABLE_WALK_SHARED); > if (!ret) > dsb(ishst); > > diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c > index 886ad5ee767a..347985a56414 100644 > --- a/arch/arm64/kvm/mmu.c > +++ b/arch/arm64/kvm/mmu.c > @@ -1404,10 +1404,10 @@ static void handle_access_fault(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa) > > trace_kvm_access_fault(fault_ipa); > > - write_lock(&vcpu->kvm->mmu_lock); > + read_lock(&vcpu->kvm->mmu_lock); > mmu = vcpu->arch.hw_mmu; > pte = kvm_pgtable_stage2_mkyoung(mmu->pgt, fault_ipa); > - write_unlock(&vcpu->kvm->mmu_lock); > + read_unlock(&vcpu->kvm->mmu_lock); > > if (kvm_pte_valid(pte)) > kvm_set_pfn_accessed(kvm_pte_to_pfn(pte)); > -- > 2.38.1.584.g0f3c55d4c2-goog > > _______________________________________________ > kvmarm mailing list > kvmarm@lists.cs.columbia.edu > https://lists.cs.columbia.edu/mailman/listinfo/kvmarm Reviewed-by: Ricardo Koller _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel