From: Jan Kiszka <[email protected]> All CPUs != current are supposed to be suspended when this function is called. They will process the flush request when being resumed. So drop the superfluous kick.
Signed-off-by: Jan Kiszka <[email protected]> --- hypervisor/arch/x86/control.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/hypervisor/arch/x86/control.c b/hypervisor/arch/x86/control.c index b46347cc..9a2c6680 100644 --- a/hypervisor/arch/x86/control.c +++ b/hypervisor/arch/x86/control.c @@ -72,13 +72,12 @@ void arch_flush_cell_vcpu_caches(struct cell *cell) { unsigned int cpu; - for_each_cpu(cpu, cell->cpu_set) - if (cpu == this_cpu_id()) { + for_each_cpu(cpu, cell->cpu_set) { + if (cpu == this_cpu_id()) vcpu_tlb_flush(); - } else { + else public_per_cpu(cpu)->flush_vcpu_caches = true; - apic_send_nmi_ipi(public_per_cpu(cpu)); - } + } } void arch_cell_destroy(struct cell *cell) -- 2.36.1 -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jailhouse-dev/20220627131329.3659-4-ralf.ramsauer%40oth-regensburg.de.
