x86/xen/time: setup secondary time info for vdso
In order to support pvclock vdso on xen we need to setup the
time info page for each vcpu and register those pages with Xen
using the VCPUOP_register_vcpu_time_memory_area hypercall. This
hypercall will also forcefully update the pvti which will set
some of the necessary flags for vdso. Afterwards we check if it
supports the PVCLOCK_TSC_STABLE_BIT flag which is mandatory for
having vdso/vsyscall support. And if so, it will set the cpu
pvti's that will be later used when mapping the vdso image.
Note that before setting up vdso we check if PVCLOCK_TSC_STABLE_BIT
with the primary vcpu_info which if supported adds up this flag
to the pvclock supported ones. This is to allow Xen clocksource
to be faster irrespesctive of how the pvclock vdso pages are setup.
This allows to speed up pvclock_clocksource_read() users.
The xen headers are also updated to include the new hypercall for
registering the secondary vcpu_time_info copy.
Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Orabug:
26107942