ARMv8-64 Cache management in a PSCI functions

Hi everyone,

I'm currently working on type-1 hypervisor and would like to provide support of the ARM Power State Coordination Interface. http://infocenter.arm.com/help/topic/com.arm.doc.den0022d/Power_State_Coordination_Interface_PDD_v1_1_DEN0022D.pdf

In order to achieve this, some functionality should be implemented in EL2 mode in response to the hypercalls performed by the guest OSes. According with the Platform Design Document (above) some functions are mandatory such as CPU_OFF, CPU_SUSPEND and CPU_ON. However, in both of them it is required cache and coherency management.

My question is the following, in a scenario that there are multiples vCPUs running on top of physical core0 and one of them wants to perform a hypercall to the hypervisor (CPU_ON), is there any portable way to invalidate the respective cache lines related to the specific vcpu, the one which performs the hypercall?

Thanks in advance,

Cheers.

Jorge