]> www.infradead.org Git - users/jedix/linux-maple.git/commit
x86/xen/time: setup secondary time info for vdso
authorJoao Martins <joao.m.martins@oracle.com>
Mon, 15 May 2017 16:51:10 +0000 (17:51 +0100)
committerJoao Martins <joao.m.martins@oracle.com>
Wed, 31 May 2017 21:46:31 +0000 (22:46 +0100)
commitd5ae16b5584e1e01b1d4a17ae6b206a7eeceb498
treebcd976af59be0e5a9db74d95808ed05b9d371a2d
parenta5a06923b083cdb4f350bbda0b2de3e33d3bed5b
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
arch/x86/xen/mmu.c
arch/x86/xen/smp.c
arch/x86/xen/time.c
arch/x86/xen/xen-ops.h
include/xen/interface/vcpu.h