* [PATCH v2] target/ppc: Fix nested-hv HEAI delivery
@ 2023-05-30 13:21 Nicholas Piggin
2023-06-01 20:42 ` Daniel Henrique Barboza
0 siblings, 1 reply; 2+ messages in thread
From: Nicholas Piggin @ 2023-05-30 13:21 UTC (permalink / raw)
To: qemu-ppc
Cc: Nicholas Piggin, qemu-devel, Daniel Henrique Barboza, balaton,
Fabiano Rosas
ppc hypervisors turn HEAI interrupts into program interrupts injected
into the guest that executed the illegal instruction, if the hypervisor
doesn't handle it some other way.
The nested-hv implementation failed to account for this HEAI->program
conversion. The virtual hypervisor wants to see the HEAI when running
a nested guest, so that interrupt type can be returned to its KVM
caller.
Fixes: 7cebc5db2eba6 ("target/ppc: Introduce a vhyp framework for nested HV support")
Cc: balaton@eik.bme.hu
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
Since v1:
- Address review comments style and typo fixes
target/ppc/excp_helper.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
index d69bd0033a..0f7ed58673 100644
--- a/target/ppc/excp_helper.c
+++ b/target/ppc/excp_helper.c
@@ -1387,9 +1387,12 @@ static void powerpc_excp_books(PowerPCCPU *cpu, int excp)
/*
* We don't want to generate a Hypervisor Emulation Assistance
- * Interrupt if we don't have HVB in msr_mask (PAPR mode).
+ * Interrupt if we don't have HVB in msr_mask (PAPR mode),
+ * unless running a nested-hv guest, in which case the L1
+ * kernel wants the interrupt.
*/
- if (excp == POWERPC_EXCP_HV_EMU && !(env->msr_mask & MSR_HVB)) {
+ if (excp == POWERPC_EXCP_HV_EMU && !(env->msr_mask & MSR_HVB) &&
+ !books_vhyp_handles_hv_excp(cpu)) {
excp = POWERPC_EXCP_PROGRAM;
}
--
2.40.1
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH v2] target/ppc: Fix nested-hv HEAI delivery
2023-05-30 13:21 [PATCH v2] target/ppc: Fix nested-hv HEAI delivery Nicholas Piggin
@ 2023-06-01 20:42 ` Daniel Henrique Barboza
0 siblings, 0 replies; 2+ messages in thread
From: Daniel Henrique Barboza @ 2023-06-01 20:42 UTC (permalink / raw)
To: Nicholas Piggin, qemu-ppc
Cc: qemu-devel, Daniel Henrique Barboza, balaton, Fabiano Rosas
Queued in gitlab.com/danielhb/qemu/tree/ppc-next. Thanks,
Daniel
On 5/30/23 10:21, Nicholas Piggin wrote:
> ppc hypervisors turn HEAI interrupts into program interrupts injected
> into the guest that executed the illegal instruction, if the hypervisor
> doesn't handle it some other way.
>
> The nested-hv implementation failed to account for this HEAI->program
> conversion. The virtual hypervisor wants to see the HEAI when running
> a nested guest, so that interrupt type can be returned to its KVM
> caller.
>
> Fixes: 7cebc5db2eba6 ("target/ppc: Introduce a vhyp framework for nested HV support")
> Cc: balaton@eik.bme.hu
> Reviewed-by: Fabiano Rosas <farosas@suse.de>
> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> ---
> Since v1:
> - Address review comments style and typo fixes
>
> target/ppc/excp_helper.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
> index d69bd0033a..0f7ed58673 100644
> --- a/target/ppc/excp_helper.c
> +++ b/target/ppc/excp_helper.c
> @@ -1387,9 +1387,12 @@ static void powerpc_excp_books(PowerPCCPU *cpu, int excp)
>
> /*
> * We don't want to generate a Hypervisor Emulation Assistance
> - * Interrupt if we don't have HVB in msr_mask (PAPR mode).
> + * Interrupt if we don't have HVB in msr_mask (PAPR mode),
> + * unless running a nested-hv guest, in which case the L1
> + * kernel wants the interrupt.
> */
> - if (excp == POWERPC_EXCP_HV_EMU && !(env->msr_mask & MSR_HVB)) {
> + if (excp == POWERPC_EXCP_HV_EMU && !(env->msr_mask & MSR_HVB) &&
> + !books_vhyp_handles_hv_excp(cpu)) {
> excp = POWERPC_EXCP_PROGRAM;
> }
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-06-01 20:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-30 13:21 [PATCH v2] target/ppc: Fix nested-hv HEAI delivery Nicholas Piggin
2023-06-01 20:42 ` Daniel Henrique Barboza
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).