On 6/5/25 4:19 PM, Jan Beulich wrote:
Won't be enough to flushing of guest TLB only during context switch?
"only" is interesting here. Context switches are a relatively frequent
operation, which in addition you want to be fast. If a flush is necessary
there for correctness (e.g. when VMIDs aren't in use), you have to do it
there. But if you can flush less frequently without violating correctness,
you'd almost always want to use such an opportunity.
Then it is better to introduce VMID now, it seems it's only one place where
it should be set, when hgatp is initialized.
Does Xen have some framework to work with VMID?
That's all arch-specific, I think.
Probably, I used incorrect words to express what I want. I wrote about
allocation/freeing
of VMIDs. Basically something similar to what Arm has
(|p2m_vmid_allocator_init(), ||p2m_alloc_vmid(), ||p2m_free_vmid|):
https://gitlab.com/xen-project/xen/-/blob/staging/xen/arch/arm/p2m.c?ref_type=heads#L271
It seems like it is not very arch-specific, at the moment.
But, likely, RISC-V will need to do an update|p2m_alloc_vmid(), which will do p2m's TLB flush when overflow of VMIDs
happen. ~ Oleksii |