From: Nicholas Piggin <npiggin@gmail.com> To: Fabiano Rosas <farosas@linux.ibm.com>, kvm-ppc@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org Subject: Re: [PATCH v3 02/41] KVM: PPC: Book3S HV: Prevent radix guests from setting LPCR[TC] Date: Tue, 09 Mar 2021 11:14:10 +1000 [thread overview] Message-ID: <1615252361.wjh446wma8.astroid@bobo.none> (raw) In-Reply-To: <878s6xmyv4.fsf@linux.ibm.com> Excerpts from Fabiano Rosas's message of March 9, 2021 1:47 am: > Nicholas Piggin <npiggin@gmail.com> writes: > >> This bit only applies to hash partitions. >> >> Signed-off-by: Nicholas Piggin <npiggin@gmail.com> >> --- >> arch/powerpc/kvm/book3s_hv.c | 6 ++++-- >> arch/powerpc/kvm/book3s_hv_nested.c | 2 +- >> 2 files changed, 5 insertions(+), 3 deletions(-) >> >> diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c >> index c40eeb20be39..2e29b96ef775 100644 >> --- a/arch/powerpc/kvm/book3s_hv.c >> +++ b/arch/powerpc/kvm/book3s_hv.c >> @@ -1666,10 +1666,12 @@ static void kvmppc_set_lpcr(struct kvm_vcpu *vcpu, u64 new_lpcr, >> >> /* >> * Userspace can only modify DPFD (default prefetch depth), >> - * ILE (interrupt little-endian) and TC (translation control). >> + * ILE (interrupt little-endian) and TC (translation control) if HPT. >> * On POWER8 and POWER9 userspace can also modify AIL (alt. interrupt loc.). >> */ >> - mask = LPCR_DPFD | LPCR_ILE | LPCR_TC; >> + mask = LPCR_DPFD | LPCR_ILE; >> + if (!kvm_is_radix(kvm)) >> + mask |= LPCR_TC; > > I think in theory there is a possibility that userspace sets the LPCR > while we running Radix and then calls the KVM_PPC_CONFIGURE_V3_MMU ioctl > right after to switch to HPT. I'm not sure if that would make sense but > maybe it's something to consider... Oh actually it is an issue for the later AIL patch I think. So LPCR will have to be filtered again when switching MMU mode. Good catch, I'll add something for that. Thanks, Nick > >> if (cpu_has_feature(CPU_FTR_ARCH_207S)) { >> mask |= LPCR_AIL; >> /* LPCR[AIL]=1/2 is disallowed */ >> diff --git a/arch/powerpc/kvm/book3s_hv_nested.c b/arch/powerpc/kvm/book3s_hv_nested.c >> index b496079e02f7..0e6cf650cbfe 100644 >> --- a/arch/powerpc/kvm/book3s_hv_nested.c >> +++ b/arch/powerpc/kvm/book3s_hv_nested.c >> @@ -141,7 +141,7 @@ static void sanitise_hv_regs(struct kvm_vcpu *vcpu, struct hv_guest_state *hr) >> * Don't let L1 change LPCR bits for the L2 except these: >> * Keep this in sync with kvmppc_set_lpcr. >> */ >> - mask = LPCR_DPFD | LPCR_ILE | LPCR_TC | LPCR_LD | LPCR_LPES | LPCR_MER; >> + mask = LPCR_DPFD | LPCR_ILE | LPCR_LD | LPCR_LPES | LPCR_MER; >> /* LPCR[AIL]=1/2 is disallowed */ >> if ((hr->lpcr & LPCR_AIL) && (hr->lpcr & LPCR_AIL) != LPCR_AIL_3) >> hr->lpcr &= ~LPCR_AIL; >
WARNING: multiple messages have this Message-ID (diff)
From: Nicholas Piggin <npiggin@gmail.com> To: Fabiano Rosas <farosas@linux.ibm.com>, kvm-ppc@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org Subject: Re: [PATCH v3 02/41] KVM: PPC: Book3S HV: Prevent radix guests from setting LPCR[TC] Date: Tue, 09 Mar 2021 01:14:10 +0000 [thread overview] Message-ID: <1615252361.wjh446wma8.astroid@bobo.none> (raw) In-Reply-To: <878s6xmyv4.fsf@linux.ibm.com> Excerpts from Fabiano Rosas's message of March 9, 2021 1:47 am: > Nicholas Piggin <npiggin@gmail.com> writes: > >> This bit only applies to hash partitions. >> >> Signed-off-by: Nicholas Piggin <npiggin@gmail.com> >> --- >> arch/powerpc/kvm/book3s_hv.c | 6 ++++-- >> arch/powerpc/kvm/book3s_hv_nested.c | 2 +- >> 2 files changed, 5 insertions(+), 3 deletions(-) >> >> diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c >> index c40eeb20be39..2e29b96ef775 100644 >> --- a/arch/powerpc/kvm/book3s_hv.c >> +++ b/arch/powerpc/kvm/book3s_hv.c >> @@ -1666,10 +1666,12 @@ static void kvmppc_set_lpcr(struct kvm_vcpu *vcpu, u64 new_lpcr, >> >> /* >> * Userspace can only modify DPFD (default prefetch depth), >> - * ILE (interrupt little-endian) and TC (translation control). >> + * ILE (interrupt little-endian) and TC (translation control) if HPT. >> * On POWER8 and POWER9 userspace can also modify AIL (alt. interrupt loc.). >> */ >> - mask = LPCR_DPFD | LPCR_ILE | LPCR_TC; >> + mask = LPCR_DPFD | LPCR_ILE; >> + if (!kvm_is_radix(kvm)) >> + mask |= LPCR_TC; > > I think in theory there is a possibility that userspace sets the LPCR > while we running Radix and then calls the KVM_PPC_CONFIGURE_V3_MMU ioctl > right after to switch to HPT. I'm not sure if that would make sense but > maybe it's something to consider... Oh actually it is an issue for the later AIL patch I think. So LPCR will have to be filtered again when switching MMU mode. Good catch, I'll add something for that. Thanks, Nick > >> if (cpu_has_feature(CPU_FTR_ARCH_207S)) { >> mask |= LPCR_AIL; >> /* LPCR[AIL]=1/2 is disallowed */ >> diff --git a/arch/powerpc/kvm/book3s_hv_nested.c b/arch/powerpc/kvm/book3s_hv_nested.c >> index b496079e02f7..0e6cf650cbfe 100644 >> --- a/arch/powerpc/kvm/book3s_hv_nested.c >> +++ b/arch/powerpc/kvm/book3s_hv_nested.c >> @@ -141,7 +141,7 @@ static void sanitise_hv_regs(struct kvm_vcpu *vcpu, struct hv_guest_state *hr) >> * Don't let L1 change LPCR bits for the L2 except these: >> * Keep this in sync with kvmppc_set_lpcr. >> */ >> - mask = LPCR_DPFD | LPCR_ILE | LPCR_TC | LPCR_LD | LPCR_LPES | LPCR_MER; >> + mask = LPCR_DPFD | LPCR_ILE | LPCR_LD | LPCR_LPES | LPCR_MER; >> /* LPCR[AIL]=1/2 is disallowed */ >> if ((hr->lpcr & LPCR_AIL) && (hr->lpcr & LPCR_AIL) != LPCR_AIL_3) >> hr->lpcr &= ~LPCR_AIL; >
next prev parent reply other threads:[~2021-03-09 1:14 UTC|newest] Thread overview: 158+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-03-05 15:05 [PATCH v3 00/41] KVM: PPC: Book3S: C-ify the P9 entry/exit code Nicholas Piggin 2021-03-05 15:05 ` Nicholas Piggin 2021-03-05 15:05 ` [PATCH v3 01/41] KVM: PPC: Book3S HV: Disallow LPCR[AIL] to be set to 1 or 2 Nicholas Piggin 2021-03-05 15:05 ` Nicholas Piggin 2021-03-08 15:26 ` Fabiano Rosas 2021-03-08 15:26 ` Fabiano Rosas 2021-03-09 1:11 ` Nicholas Piggin 2021-03-09 1:11 ` Nicholas Piggin 2021-03-05 15:05 ` [PATCH v3 02/41] KVM: PPC: Book3S HV: Prevent radix guests from setting LPCR[TC] Nicholas Piggin 2021-03-05 15:05 ` Nicholas Piggin 2021-03-08 15:47 ` Fabiano Rosas 2021-03-08 15:47 ` Fabiano Rosas 2021-03-09 1:14 ` Nicholas Piggin [this message] 2021-03-09 1:14 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 03/41] KVM: PPC: Book3S HV: Remove redundant mtspr PSPB Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-12 5:07 ` Daniel Axtens 2021-03-12 5:07 ` Daniel Axtens 2021-03-05 15:06 ` [PATCH v3 04/41] KVM: PPC: Book3S HV: remove unused kvmppc_h_protect argument Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 05/41] KVM: PPC: Book3S HV: Fix CONFIG_SPAPR_TCE_IOMMU=n default hcalls Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 06/41] powerpc/64s: Remove KVM handler support from CBE_RAS interrupts Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 07/41] powerpc/64s: remove KVM SKIP test from instruction breakpoint handler Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 08/41] KVM: PPC: Book3S HV: Ensure MSR[ME] is always set in guest MSR Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 09/41] KVM: PPC: Book3S 64: move KVM interrupt entry to a common entry point Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 10/41] KVM: PPC: Book3S 64: Move GUEST_MODE_SKIP test into KVM Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 11/41] KVM: PPC: Book3S 64: add hcall interrupt handler Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 12/41] KVM: PPC: Book3S 64: Move hcall early register setup to KVM Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-12 5:45 ` Daniel Axtens 2021-03-12 5:45 ` Daniel Axtens 2021-03-16 3:43 ` Nicholas Piggin 2021-03-16 3:43 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 13/41] KVM: PPC: Book3S 64: Move interrupt " Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-20 7:19 ` Alexey Kardashevskiy 2021-03-20 7:19 ` Alexey Kardashevskiy 2021-03-05 15:06 ` [PATCH v3 14/41] KVM: PPC: Book3S 64: move bad_host_intr check to HV handler Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-20 9:07 ` Alexey Kardashevskiy 2021-03-20 9:07 ` Alexey Kardashevskiy 2021-03-22 3:18 ` Nicholas Piggin 2021-03-22 3:18 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 15/41] KVM: PPC: Book3S 64: Minimise hcall handler calling convention differences Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-22 2:09 ` Alexey Kardashevskiy 2021-03-22 2:09 ` Alexey Kardashevskiy 2021-03-22 4:06 ` Nicholas Piggin 2021-03-22 4:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 16/41] KVM: PPC: Book3S HV P9: Move radix MMU switching instructions together Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-22 4:24 ` Alexey Kardashevskiy 2021-03-22 4:24 ` Alexey Kardashevskiy 2021-03-22 5:25 ` Nicholas Piggin 2021-03-22 5:25 ` Nicholas Piggin 2021-03-22 6:21 ` Alexey Kardashevskiy 2021-03-22 6:21 ` Alexey Kardashevskiy 2021-03-05 15:06 ` [PATCH v3 17/41] KVM: PPC: Book3S HV P9: implement kvmppc_xive_pull_vcpu in C Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-22 5:05 ` Alexey Kardashevskiy 2021-03-22 5:05 ` Alexey Kardashevskiy 2021-03-22 16:19 ` Cédric Le Goater 2021-03-22 16:19 ` Cédric Le Goater 2021-03-22 18:13 ` Nicholas Piggin 2021-03-22 18:13 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 18/41] KVM: PPC: Book3S HV P9: Move xive vcpu context management into kvmhv_p9_guest_entry Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-22 5:30 ` Alexey Kardashevskiy 2021-03-22 5:30 ` [PATCH v3 18/41] KVM: PPC: Book3S HV P9: Move xive vcpu context management into kvmhv_p9_guest_e Alexey Kardashevskiy 2021-03-05 15:06 ` [PATCH v3 19/41] KVM: PPC: Book3S HV P9: Stop handling hcalls in real-mode in the P9 path Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-17 16:22 ` Fabiano Rosas 2021-03-17 16:22 ` Fabiano Rosas 2021-03-17 22:41 ` Nicholas Piggin 2021-03-17 22:41 ` Nicholas Piggin 2021-03-22 16:12 ` Cédric Le Goater 2021-03-22 16:12 ` Cédric Le Goater 2021-03-22 7:30 ` Alexey Kardashevskiy 2021-03-22 7:30 ` Alexey Kardashevskiy 2021-03-22 13:15 ` Nicholas Piggin 2021-03-22 13:15 ` Nicholas Piggin 2021-03-22 16:01 ` Cédric Le Goater 2021-03-22 16:01 ` Cédric Le Goater 2021-03-22 18:22 ` Nicholas Piggin 2021-03-22 18:22 ` Nicholas Piggin 2021-03-23 7:26 ` Cédric Le Goater 2021-03-23 7:26 ` Cédric Le Goater 2021-03-05 15:06 ` [PATCH v3 20/41] KVM: PPC: Book3S HV P9: Move setting HDEC after switching to guest LPCR Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-08 17:52 ` Fabiano Rosas 2021-03-08 17:52 ` Fabiano Rosas 2021-03-22 8:39 ` Alexey Kardashevskiy 2021-03-22 8:39 ` Alexey Kardashevskiy 2021-03-22 13:24 ` Nicholas Piggin 2021-03-22 13:24 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 21/41] KVM: PPC: Book3S HV P9: Use large decrementer for HDEC Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-22 7:58 ` Alexey Kardashevskiy 2021-03-22 7:58 ` Alexey Kardashevskiy 2021-03-05 15:06 ` [PATCH v3 22/41] KVM: PPC: Book3S HV P9: Use host timer accounting to avoid decrementer read Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 23/41] KVM: PPC: Book3S HV P9: Reduce mftb per guest entry/exit Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-12 12:55 ` Fabiano Rosas 2021-03-12 12:55 ` Fabiano Rosas 2021-03-05 15:06 ` [PATCH v3 24/41] powerpc: add set_dec_or_work API for safely updating decrementer Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-22 9:38 ` Alexey Kardashevskiy 2021-03-22 9:38 ` Alexey Kardashevskiy 2021-03-05 15:06 ` [PATCH v3 25/41] KVM: PPC: Book3S HV P9: Reduce irq_work vs guest decrementer races Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-23 1:43 ` Alexey Kardashevskiy 2021-03-23 1:43 ` Alexey Kardashevskiy 2021-03-05 15:06 ` [PATCH v3 26/41] KVM: PPC: Book3S HV P9: Implement the rest of the P9 path in C Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 27/41] KVM: PPC: Book3S HV P9: inline kvmhv_load_hv_regs_and_go into __kvmhv_vcpu_entry_p9 Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 28/41] KVM: PPC: Book3S HV P9: Read machine check registers while MSR[RI] is 0 Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 29/41] KVM: PPC: Book3S HV P9: Improve exit timing accounting coverage Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 30/41] KVM: PPC: Book3S HV P9: Move SPR loading after expiry time check Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 31/41] KVM: PPC: Book3S HV P9: Add helpers for OS SPR handling Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 32/41] KVM: PPC: Book3S HV P9: Switch to guest MMU context as late as possible Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 33/41] KVM: PPC: Book3S HV: Implement radix prefetch workaround by disabling MMU Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 34/41] KVM: PPC: Book3S HV: Remove support for dependent threads mode on P9 Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-17 15:11 ` Aneesh Kumar K.V 2021-03-17 15:23 ` Aneesh Kumar K.V 2021-03-22 3:27 ` Nicholas Piggin 2021-03-22 3:27 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 35/41] KVM: PPC: Book3S HV: Remove radix guest support from P7/8 path Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 36/41] KVM: PPC: Book3S HV P9: Allow all P9 processors to enable nested HV Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 37/41] KVM: PPC: Book3S HV: small pseries_do_hcall cleanup Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 38/41] KVM: PPC: Book3S HV: add virtual mode handlers for HPT hcalls and page faults Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 39/41] KVM: PPC: Book3S HV P9: implement hash guest support Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 40/41] KVM: PPC: Book3S HV P9: implement hash host / " Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-05 15:06 ` [PATCH v3 41/41] KVM: PPC: Book3S HV: remove ISA v3.0 and v3.1 support from P7/8 path Nicholas Piggin 2021-03-05 15:06 ` Nicholas Piggin 2021-03-16 6:06 ` [PATCH v3 00/41] KVM: PPC: Book3S: C-ify the P9 entry/exit code Nicholas Piggin 2021-03-16 6:06 ` Nicholas Piggin
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=1615252361.wjh446wma8.astroid@bobo.none \ --to=npiggin@gmail.com \ --cc=farosas@linux.ibm.com \ --cc=kvm-ppc@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.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: linkBe 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.