From: Ricardo Koller <ricarkol@google.com>
To: Vladimir Murzin <vladimir.murzin@arm.com>
Cc: pbonzini@redhat.com, maz@kernel.org, oupton@google.com,
yuzenghui@huawei.com, dmatlack@google.com, kvm@vger.kernel.org,
kvmarm@lists.linux.dev, qperret@google.com,
catalin.marinas@arm.com, andrew.jones@linux.dev,
seanjc@google.com, alexandru.elisei@arm.com,
suzuki.poulose@arm.com, eric.auger@redhat.com, gshan@redhat.com,
reijiw@google.com, rananta@google.com, bgardon@google.com,
ricarkol@gmail.com
Subject: Re: [PATCH v5 12/12] KVM: arm64: Use local TLBI on permission relaxation
Date: Thu, 2 Mar 2023 11:06:37 -0800 [thread overview]
Message-ID: <ZADzvSK77CHBwcNN@google.com> (raw)
In-Reply-To: <6d407882-c34e-16f1-1662-2af588e982f7@arm.com>
Hi Vladimir,
On Thu, Mar 02, 2023 at 10:45:25AM +0000, Vladimir Murzin wrote:
> On 3/1/23 21:09, Ricardo Koller wrote:
> > Second, KVM does not set the VTTBR_EL2.CnP bit, so each
> > PE has its own TLB entry for the same page. KVM could tolerate that when
> > doing permission relaxation (i.e., not having changes broadcasted to all
> > PEs).
>
> I'm might be missing something, but it seems that we do set CnP bit, at
> least in v6.2 we have
>
> arch/arm64/include/asm/kvm_mmu.h
>
> static __always_inline u64 kvm_get_vttbr(struct kvm_s2_mmu *mmu)
> {
> struct kvm_vmid *vmid = &mmu->vmid;
> u64 vmid_field, baddr;
> u64 cnp = system_supports_cnp() ? VTTBR_CNP_BIT : 0;
>
> baddr = mmu->pgd_phys;
> vmid_field = atomic64_read(&vmid->id) << VTTBR_VMID_SHIFT;
> vmid_field &= VTTBR_VMID_MASK(kvm_arm_vmid_bits);
> return kvm_phys_to_vttbr(baddr) | vmid_field | cnp;
> }
>
> Cheers
> Vladimir
I need to fix the commit message. What I meant to say is that
this optimization is correct in the case where CnP is not set.
Thanks,
Ricardo
prev parent reply other threads:[~2023-03-02 19:06 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-01 21:09 [PATCH v5 00/12] Implement Eager Page Splitting for ARM Ricardo Koller
2023-03-01 21:09 ` [PATCH v5 01/12] KVM: arm64: Add KVM_PGTABLE_WALK ctx->flags for skipping BBM and CMO Ricardo Koller
2023-03-03 8:27 ` Shaoqin Huang
2023-03-01 21:09 ` [PATCH v5 02/12] KVM: arm64: Rename free_unlinked to free_removed Ricardo Koller
2023-03-03 8:31 ` Shaoqin Huang
2023-03-01 21:09 ` [PATCH v5 03/12] KVM: arm64: Add helper for creating unlinked stage2 subtrees Ricardo Koller
2023-03-03 9:02 ` Shaoqin Huang
2023-03-01 21:09 ` [PATCH v5 04/12] KVM: arm64: Add kvm_pgtable_stage2_split() Ricardo Koller
2023-03-03 9:09 ` Shaoqin Huang
2023-03-01 21:09 ` [PATCH v5 05/12] KVM: arm64: Refactor kvm_arch_commit_memory_region() Ricardo Koller
2023-03-03 9:14 ` Shaoqin Huang
2023-03-01 21:09 ` [PATCH v5 06/12] KVM: arm64: Add kvm_uninit_stage2_mmu() Ricardo Koller
2023-03-03 9:14 ` Shaoqin Huang
2023-03-01 21:09 ` [PATCH v5 07/12] KVM: arm64: Export kvm_are_all_memslots_empty() Ricardo Koller
2023-03-03 9:15 ` Shaoqin Huang
2023-03-01 21:09 ` [PATCH v5 08/12] KVM: arm64: Add KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE Ricardo Koller
2023-03-01 21:09 ` [PATCH v5 09/12] KVM: arm64: Split huge pages when dirty logging is enabled Ricardo Koller
2023-03-03 9:18 ` Shaoqin Huang
2023-03-01 21:09 ` [PATCH v5 10/12] KVM: arm64: Open-code kvm_mmu_write_protect_pt_masked() Ricardo Koller
2023-03-01 21:09 ` [PATCH v5 11/12] KVM: arm64: Split huge pages during KVM_CLEAR_DIRTY_LOG Ricardo Koller
2023-03-01 21:09 ` [PATCH v5 12/12] KVM: arm64: Use local TLBI on permission relaxation Ricardo Koller
2023-03-02 10:45 ` Vladimir Murzin
2023-03-02 19:06 ` Ricardo Koller [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZADzvSK77CHBwcNN@google.com \
--to=ricarkol@google.com \
--cc=alexandru.elisei@arm.com \
--cc=andrew.jones@linux.dev \
--cc=bgardon@google.com \
--cc=catalin.marinas@arm.com \
--cc=dmatlack@google.com \
--cc=eric.auger@redhat.com \
--cc=gshan@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=maz@kernel.org \
--cc=oupton@google.com \
--cc=pbonzini@redhat.com \
--cc=qperret@google.com \
--cc=rananta@google.com \
--cc=reijiw@google.com \
--cc=ricarkol@gmail.com \
--cc=seanjc@google.com \
--cc=suzuki.poulose@arm.com \
--cc=vladimir.murzin@arm.com \
--cc=yuzenghui@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.