From: Marc Zyngier <maz@kernel.org>
To: kvm-riscv@lists.infradead.org
Subject: [PATCH v9 05/14] KVM: Allow range-based TLB invalidation from common code
Date: Thu, 17 Aug 2023 09:39:31 +0100 [thread overview]
Message-ID: <87a5uqoyf0.wl-maz@kernel.org> (raw)
In-Reply-To: <ZNv8cCzI9fMWkGWT@google.com>
On Tue, 15 Aug 2023 23:30:08 +0100,
Sean Christopherson <seanjc@google.com> wrote:
>
> On Fri, Aug 11, 2023, Raghavendra Rao Ananta wrote:
> > diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
> > index ec169f5c7dce2..00f7bda9202f2 100644
> > --- a/arch/x86/kvm/mmu/mmu.c
> > +++ b/arch/x86/kvm/mmu/mmu.c
> > @@ -278,16 +278,14 @@ static inline bool kvm_available_flush_remote_tlbs_range(void)
> > return kvm_x86_ops.flush_remote_tlbs_range;
> > }
> >
> > -void kvm_flush_remote_tlbs_range(struct kvm *kvm, gfn_t start_gfn,
> > - gfn_t nr_pages)
> > +int kvm_arch_flush_remote_tlbs_range(struct kvm *kvm, gfn_t gfn, u64 nr_pages)
> > {
> > int ret = -EOPNOTSUPP;
> >
> > if (kvm_x86_ops.flush_remote_tlbs_range)
> > - ret = static_call(kvm_x86_flush_remote_tlbs_range)(kvm, start_gfn,
> > - nr_pages);
> > - if (ret)
> > - kvm_flush_remote_tlbs(kvm);
> > + ret = static_call(kvm_x86_flush_remote_tlbs_range)(kvm, gfn, nr_pages);
> > +
> > + return ret;
>
> Please write this as
>
> if (kvm_x86_ops.flush_remote_tlbs_range)
> return static_call(kvm_x86_flush_remote_tlbs_range)(kvm, gfn, nr_pages);
>
> return -EOPNOTSUPP;
>
> or alternatively
>
> if (!kvm_x86_ops.flush_remote_tlbs_range)
> return -EOPNOTSUPP;
>
> return static_call(kvm_x86_flush_remote_tlbs_range)(kvm, gfn, nr_pages);
>
> Hmm, I'll throw my official vote for the second version.
I've applied the second version locally.
M.
--
Without deviation from the norm, progress is not possible.
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Raghavendra Rao Ananta <rananta@google.com>,
Oliver Upton <oliver.upton@linux.dev>,
James Morse <james.morse@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Huacai Chen <chenhuacai@kernel.org>,
Zenghui Yu <yuzenghui@huawei.com>,
Anup Patel <anup@brainfault.org>,
Atish Patra <atishp@atishpatra.org>,
Jing Zhang <jingzhangos@google.com>,
Reiji Watanabe <reijiw@google.com>,
Colton Lewis <coltonlewis@google.com>,
David Matlack <dmatlack@google.com>,
Fuad Tabba <tabba@google.com>,
linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
linux-mips@vger.kernel.org, kvm-riscv@lists.infradead.org,
linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org, Gavin Shan <gshan@redhat.com>,
Shaoqin Huang <shahuang@redhat.com>
Subject: Re: [PATCH v9 05/14] KVM: Allow range-based TLB invalidation from common code
Date: Thu, 17 Aug 2023 09:39:31 +0100 [thread overview]
Message-ID: <87a5uqoyf0.wl-maz@kernel.org> (raw)
In-Reply-To: <ZNv8cCzI9fMWkGWT@google.com>
On Tue, 15 Aug 2023 23:30:08 +0100,
Sean Christopherson <seanjc@google.com> wrote:
>
> On Fri, Aug 11, 2023, Raghavendra Rao Ananta wrote:
> > diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
> > index ec169f5c7dce2..00f7bda9202f2 100644
> > --- a/arch/x86/kvm/mmu/mmu.c
> > +++ b/arch/x86/kvm/mmu/mmu.c
> > @@ -278,16 +278,14 @@ static inline bool kvm_available_flush_remote_tlbs_range(void)
> > return kvm_x86_ops.flush_remote_tlbs_range;
> > }
> >
> > -void kvm_flush_remote_tlbs_range(struct kvm *kvm, gfn_t start_gfn,
> > - gfn_t nr_pages)
> > +int kvm_arch_flush_remote_tlbs_range(struct kvm *kvm, gfn_t gfn, u64 nr_pages)
> > {
> > int ret = -EOPNOTSUPP;
> >
> > if (kvm_x86_ops.flush_remote_tlbs_range)
> > - ret = static_call(kvm_x86_flush_remote_tlbs_range)(kvm, start_gfn,
> > - nr_pages);
> > - if (ret)
> > - kvm_flush_remote_tlbs(kvm);
> > + ret = static_call(kvm_x86_flush_remote_tlbs_range)(kvm, gfn, nr_pages);
> > +
> > + return ret;
>
> Please write this as
>
> if (kvm_x86_ops.flush_remote_tlbs_range)
> return static_call(kvm_x86_flush_remote_tlbs_range)(kvm, gfn, nr_pages);
>
> return -EOPNOTSUPP;
>
> or alternatively
>
> if (!kvm_x86_ops.flush_remote_tlbs_range)
> return -EOPNOTSUPP;
>
> return static_call(kvm_x86_flush_remote_tlbs_range)(kvm, gfn, nr_pages);
>
> Hmm, I'll throw my official vote for the second version.
I've applied the second version locally.
M.
--
Without deviation from the norm, progress is not possible.
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Raghavendra Rao Ananta <rananta@google.com>,
Oliver Upton <oliver.upton@linux.dev>,
James Morse <james.morse@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Huacai Chen <chenhuacai@kernel.org>,
Zenghui Yu <yuzenghui@huawei.com>,
Anup Patel <anup@brainfault.org>,
Atish Patra <atishp@atishpatra.org>,
Jing Zhang <jingzhangos@google.com>,
Reiji Watanabe <reijiw@google.com>,
Colton Lewis <coltonlewis@google.com>,
David Matlack <dmatlack@google.com>,
Fuad Tabba <tabba@google.com>,
linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
linux-mips@vger.kernel.org, kvm-riscv@lists.infradead.org,
linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org, Gavin Shan <gshan@redhat.com>,
Shaoqin Huang <shahuang@redhat.com>
Subject: Re: [PATCH v9 05/14] KVM: Allow range-based TLB invalidation from common code
Date: Thu, 17 Aug 2023 09:39:31 +0100 [thread overview]
Message-ID: <87a5uqoyf0.wl-maz@kernel.org> (raw)
In-Reply-To: <ZNv8cCzI9fMWkGWT@google.com>
On Tue, 15 Aug 2023 23:30:08 +0100,
Sean Christopherson <seanjc@google.com> wrote:
>
> On Fri, Aug 11, 2023, Raghavendra Rao Ananta wrote:
> > diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
> > index ec169f5c7dce2..00f7bda9202f2 100644
> > --- a/arch/x86/kvm/mmu/mmu.c
> > +++ b/arch/x86/kvm/mmu/mmu.c
> > @@ -278,16 +278,14 @@ static inline bool kvm_available_flush_remote_tlbs_range(void)
> > return kvm_x86_ops.flush_remote_tlbs_range;
> > }
> >
> > -void kvm_flush_remote_tlbs_range(struct kvm *kvm, gfn_t start_gfn,
> > - gfn_t nr_pages)
> > +int kvm_arch_flush_remote_tlbs_range(struct kvm *kvm, gfn_t gfn, u64 nr_pages)
> > {
> > int ret = -EOPNOTSUPP;
> >
> > if (kvm_x86_ops.flush_remote_tlbs_range)
> > - ret = static_call(kvm_x86_flush_remote_tlbs_range)(kvm, start_gfn,
> > - nr_pages);
> > - if (ret)
> > - kvm_flush_remote_tlbs(kvm);
> > + ret = static_call(kvm_x86_flush_remote_tlbs_range)(kvm, gfn, nr_pages);
> > +
> > + return ret;
>
> Please write this as
>
> if (kvm_x86_ops.flush_remote_tlbs_range)
> return static_call(kvm_x86_flush_remote_tlbs_range)(kvm, gfn, nr_pages);
>
> return -EOPNOTSUPP;
>
> or alternatively
>
> if (!kvm_x86_ops.flush_remote_tlbs_range)
> return -EOPNOTSUPP;
>
> return static_call(kvm_x86_flush_remote_tlbs_range)(kvm, gfn, nr_pages);
>
> Hmm, I'll throw my official vote for the second version.
I've applied the second version locally.
M.
--
Without deviation from the norm, progress is not possible.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Raghavendra Rao Ananta <rananta@google.com>,
Oliver Upton <oliver.upton@linux.dev>,
James Morse <james.morse@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Huacai Chen <chenhuacai@kernel.org>,
Zenghui Yu <yuzenghui@huawei.com>,
Anup Patel <anup@brainfault.org>,
Atish Patra <atishp@atishpatra.org>,
Jing Zhang <jingzhangos@google.com>,
Reiji Watanabe <reijiw@google.com>,
Colton Lewis <coltonlewis@google.com>,
David Matlack <dmatlack@google.com>,
Fuad Tabba <tabba@google.com>,
linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
linux-mips@vger.kernel.org, kvm-riscv@lists.infradead.org,
linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org, Gavin Shan <gshan@redhat.com>,
Shaoqin Huang <shahuang@redhat.com>
Subject: Re: [PATCH v9 05/14] KVM: Allow range-based TLB invalidation from common code
Date: Thu, 17 Aug 2023 09:39:31 +0100 [thread overview]
Message-ID: <87a5uqoyf0.wl-maz@kernel.org> (raw)
In-Reply-To: <ZNv8cCzI9fMWkGWT@google.com>
On Tue, 15 Aug 2023 23:30:08 +0100,
Sean Christopherson <seanjc@google.com> wrote:
>
> On Fri, Aug 11, 2023, Raghavendra Rao Ananta wrote:
> > diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
> > index ec169f5c7dce2..00f7bda9202f2 100644
> > --- a/arch/x86/kvm/mmu/mmu.c
> > +++ b/arch/x86/kvm/mmu/mmu.c
> > @@ -278,16 +278,14 @@ static inline bool kvm_available_flush_remote_tlbs_range(void)
> > return kvm_x86_ops.flush_remote_tlbs_range;
> > }
> >
> > -void kvm_flush_remote_tlbs_range(struct kvm *kvm, gfn_t start_gfn,
> > - gfn_t nr_pages)
> > +int kvm_arch_flush_remote_tlbs_range(struct kvm *kvm, gfn_t gfn, u64 nr_pages)
> > {
> > int ret = -EOPNOTSUPP;
> >
> > if (kvm_x86_ops.flush_remote_tlbs_range)
> > - ret = static_call(kvm_x86_flush_remote_tlbs_range)(kvm, start_gfn,
> > - nr_pages);
> > - if (ret)
> > - kvm_flush_remote_tlbs(kvm);
> > + ret = static_call(kvm_x86_flush_remote_tlbs_range)(kvm, gfn, nr_pages);
> > +
> > + return ret;
>
> Please write this as
>
> if (kvm_x86_ops.flush_remote_tlbs_range)
> return static_call(kvm_x86_flush_remote_tlbs_range)(kvm, gfn, nr_pages);
>
> return -EOPNOTSUPP;
>
> or alternatively
>
> if (!kvm_x86_ops.flush_remote_tlbs_range)
> return -EOPNOTSUPP;
>
> return static_call(kvm_x86_flush_remote_tlbs_range)(kvm, gfn, nr_pages);
>
> Hmm, I'll throw my official vote for the second version.
I've applied the second version locally.
M.
--
Without deviation from the norm, progress is not possible.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-08-17 8:39 UTC|newest]
Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-11 4:51 [PATCH v9 00/14] KVM: arm64: Add support for FEAT_TLBIRANGE Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` [PATCH v9 01/14] KVM: Rename kvm_arch_flush_remote_tlb() to kvm_arch_flush_remote_tlbs() Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-15 22:30 ` Sean Christopherson
2023-08-15 22:30 ` Sean Christopherson
2023-08-15 22:30 ` Sean Christopherson
2023-08-15 22:30 ` Sean Christopherson
2023-08-11 4:51 ` [PATCH v9 02/14] KVM: Declare kvm_arch_flush_remote_tlbs() globally Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` [PATCH v9 03/14] KVM: arm64: Use kvm_arch_flush_remote_tlbs() Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` [PATCH v9 04/14] KVM: Remove CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` [PATCH v9 05/14] KVM: Allow range-based TLB invalidation from common code Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-15 22:30 ` Sean Christopherson
2023-08-15 22:30 ` Sean Christopherson
2023-08-15 22:30 ` Sean Christopherson
2023-08-15 22:30 ` Sean Christopherson
2023-08-17 8:39 ` Marc Zyngier [this message]
2023-08-17 8:39 ` Marc Zyngier
2023-08-17 8:39 ` Marc Zyngier
2023-08-17 8:39 ` Marc Zyngier
2023-08-11 4:51 ` [PATCH v9 06/14] KVM: Move kvm_arch_flush_remote_tlbs_memslot() to " Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-15 22:31 ` Sean Christopherson
2023-08-15 22:31 ` Sean Christopherson
2023-08-15 22:31 ` Sean Christopherson
2023-08-15 22:31 ` Sean Christopherson
2023-08-11 4:51 ` [PATCH v9 07/14] arm64: tlb: Refactor the core flush algorithm of __flush_tlb_range Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` [PATCH v9 08/14] arm64: tlb: Implement __flush_s2_tlb_range_op() Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` [PATCH v9 09/14] KVM: arm64: Implement __kvm_tlb_flush_vmid_range() Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` [PATCH v9 10/14] KVM: arm64: Define kvm_tlb_flush_vmid_range() Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` [PATCH v9 11/14] KVM: arm64: Implement kvm_arch_flush_remote_tlbs_range() Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` [PATCH v9 12/14] KVM: arm64: Flush only the memslot after write-protect Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` [PATCH v9 13/14] KVM: arm64: Invalidate the table entries upon a range Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` [PATCH v9 14/14] KVM: arm64: Use TLBI range-based instructions for unmap Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-11 4:51 ` Raghavendra Rao Ananta
2023-08-14 23:16 ` [PATCH v9 00/14] KVM: arm64: Add support for FEAT_TLBIRANGE Sean Christopherson
2023-08-14 23:16 ` Sean Christopherson
2023-08-14 23:16 ` Sean Christopherson
2023-08-14 23:16 ` Sean Christopherson
2023-08-15 0:29 ` Raghavendra Rao Ananta
2023-08-15 0:29 ` Raghavendra Rao Ananta
2023-08-15 0:29 ` Raghavendra Rao Ananta
2023-08-15 0:29 ` Raghavendra Rao Ananta
2023-08-15 0:52 ` Sean Christopherson
2023-08-15 0:52 ` Sean Christopherson
2023-08-15 0:52 ` Sean Christopherson
2023-08-15 0:52 ` Sean Christopherson
2023-08-15 17:11 ` Raghavendra Rao Ananta
2023-08-15 17:11 ` Raghavendra Rao Ananta
2023-08-15 17:11 ` Raghavendra Rao Ananta
2023-08-15 17:11 ` Raghavendra Rao Ananta
2023-08-15 17:15 ` Sean Christopherson
2023-08-15 17:15 ` Sean Christopherson
2023-08-15 17:15 ` Sean Christopherson
2023-08-15 17:15 ` Sean Christopherson
2023-08-17 9:29 ` Marc Zyngier
2023-08-17 9:29 ` Marc Zyngier
2023-08-17 9:29 ` Marc Zyngier
2023-08-17 9:29 ` Marc Zyngier
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=87a5uqoyf0.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=kvm-riscv@lists.infradead.org \
/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.