diff mbox series

[RFC,RESEND,19/42] accel/split: Implement kick_vcpu_thread()

Message ID 20250620172751.94231-20-philmd@linaro.org
State New
Headers show
Series accel/split/arm: Run EL2 using TCG and EL1/EL0 in hardware with HVF | expand

Commit Message

Philippe Mathieu-Daudé June 20, 2025, 5:27 p.m. UTC
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 accel/split/split-accel-ops.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Richard Henderson June 22, 2025, 2:56 a.m. UTC | #1
On 6/20/25 10:27, Philippe Mathieu-Daudé wrote:
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   accel/split/split-accel-ops.c | 8 +++++++-
>   1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/accel/split/split-accel-ops.c b/accel/split/split-accel-ops.c
> index 746a6a2782d..63b6217f3fa 100644
> --- a/accel/split/split-accel-ops.c
> +++ b/accel/split/split-accel-ops.c
> @@ -136,7 +136,13 @@ static void split_cpu_reset_hold(CPUState *cpu)
>   
>   static void split_kick_vcpu_thread(CPUState *cpu)
>   {
> -    g_assert_not_reached();
> +    SplitAccelState *sas = SPLIT_ACCEL(cpu->accel->accel);
> +    AccelClass *ac = cpu->accel->use_hw ? ACCEL_GET_CLASS(sas->hw)
> +                                        : ACCEL_GET_CLASS(sas->sw);

Move the ?: inside the ACCEL_GET_CLASS?

Anyway,
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~

> +
> +    if (ac->ops->kick_vcpu_thread) {
> +        ac->ops->kick_vcpu_thread(cpu);
> +    }
>   }
>   
>   static bool split_cpu_thread_is_idle(CPUState *cpu)
diff mbox series

Patch

diff --git a/accel/split/split-accel-ops.c b/accel/split/split-accel-ops.c
index 746a6a2782d..63b6217f3fa 100644
--- a/accel/split/split-accel-ops.c
+++ b/accel/split/split-accel-ops.c
@@ -136,7 +136,13 @@  static void split_cpu_reset_hold(CPUState *cpu)
 
 static void split_kick_vcpu_thread(CPUState *cpu)
 {
-    g_assert_not_reached();
+    SplitAccelState *sas = SPLIT_ACCEL(cpu->accel->accel);
+    AccelClass *ac = cpu->accel->use_hw ? ACCEL_GET_CLASS(sas->hw)
+                                        : ACCEL_GET_CLASS(sas->sw);
+
+    if (ac->ops->kick_vcpu_thread) {
+        ac->ops->kick_vcpu_thread(cpu);
+    }
 }
 
 static bool split_cpu_thread_is_idle(CPUState *cpu)