On 6/18/25 5:20 PM, Jan Beulich wrote:
On 10.06.2025 15:05, Oleksii Kurochko wrote:
It instructs the remote harts to execute one or more HFENCE.GVMA instructions
by making an SBI call, covering the range of guest physical addresses between
start_addr and start_addr + size only for the given VMID.
This function call is only valid for harts implementing hypervisor extension.
We require H now, don't we? It's also odd to have this here, but not in patch 1.
Yes, we required it. I will drop this part from the commit message and the
comment
above declaration of sbi_remote_hfence_gvma_vmid().
--- a/xen/arch/riscv/sbi.c
+++ b/xen/arch/riscv/sbi.c
@@ -267,6 +267,15 @@ int sbi_remote_hfence_gvma(const cpumask_t *cpu_mask,
vaddr_t start,
cpu_mask, start, size, 0, 0);
}
+int sbi_remote_hfence_gvma_vmid(const cpumask_t *cpu_mask, vaddr_t start,
+ size_t size, unsigned long vmid)
+{
+ ASSERT(sbi_rfence);
+
+ return sbi_rfence(SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA,
+ cpu_mask, start, size, vmid, 0);
+}
sbi_remote_hfence_gvma() may want implementing in terms of this new function,
requiring the patches to be swapped. Provided (see comment there) that helper
is actually needed.
It makes sense.
But it seems like there is no need for sbi_remote_hfence_gvma() as we have VMID
introduced.
~ Oleksii