* [PATCH v1 1/3] x86/pvclock: add setter for pvclock_pvti_cpu0_va [not found] <1485365586-21653-1-git-send-email-joao.m.martins@oracle.com> @ 2017-01-25 17:33 ` Joao Martins 2017-01-26 17:25 ` Andy Lutomirski 2017-01-25 17:33 ` [PATCH v1 3/3] MAINTAINERS: xen, kvm: track pvclock-abi.h changes Joao Martins 1 sibling, 1 reply; 7+ messages in thread From: Joao Martins @ 2017-01-25 17:33 UTC (permalink / raw) To: linux-kernel, kvm Cc: Joao Martins, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86, Paolo Bonzini, Radim Krcmar, Andy Lutomirski, xen-devel Right now there is only a pvclock_pvti_cpu0_va() which is defined on kvmclock since: commit dac16fba6fc5 ("x86/vdso: Get pvclock data from the vvar VMA instead of the fixmap") The only user of this interface was kvm. This commit moves pvclock_pvti_cpu0_va to pvclock which is a more generic place to have it and adds the correspondent setter routine for it. This allows other pvclock-based clocksources to use it, such as Xen. Signed-off-by: Joao Martins <joao.m.martins@oracle.com> --- Changes since RFC: (Comments from Andy Lutomirski) * Add WARN_ON(vclock_was_used(VCLOCK_PVCLOCK)) to pvclock_set_pvti_cpu0_va --- arch/x86/include/asm/pvclock.h | 22 +++++++++++++--------- arch/x86/kernel/kvmclock.c | 6 +----- arch/x86/kernel/pvclock.c | 13 +++++++++++++ 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/arch/x86/include/asm/pvclock.h b/arch/x86/include/asm/pvclock.h index 448cfe1..58399e1 100644 --- a/arch/x86/include/asm/pvclock.h +++ b/arch/x86/include/asm/pvclock.h @@ -4,15 +4,6 @@ #include <linux/clocksource.h> #include <asm/pvclock-abi.h> -#ifdef CONFIG_KVM_GUEST -extern struct pvclock_vsyscall_time_info *pvclock_pvti_cpu0_va(void); -#else -static inline struct pvclock_vsyscall_time_info *pvclock_pvti_cpu0_va(void) -{ - return NULL; -} -#endif - /* some helper functions for xen and kvm pv clock sources */ u64 pvclock_clocksource_read(struct pvclock_vcpu_time_info *src); u8 pvclock_read_flags(struct pvclock_vcpu_time_info *src); @@ -101,4 +92,17 @@ struct pvclock_vsyscall_time_info { #define PVTI_SIZE sizeof(struct pvclock_vsyscall_time_info) +#ifdef CONFIG_PARAVIRT_CLOCK +void pvclock_set_pvti_cpu0_va(struct pvclock_vsyscall_time_info *pvti); +struct pvclock_vsyscall_time_info *pvclock_pvti_cpu0_va(void); +#else +static inline void pvclock_set_pvti_cpu0_va(struct pvclock_vsyscall_time_info *pvti) +{ +} +static inline struct pvclock_vsyscall_time_info *pvclock_pvti_cpu0_va(void) +{ + return NULL; +} +#endif + #endif /* _ASM_X86_PVCLOCK_H */ diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c index 2a5cafd..9dfbb79 100644 --- a/arch/x86/kernel/kvmclock.c +++ b/arch/x86/kernel/kvmclock.c @@ -45,11 +45,6 @@ early_param("no-kvmclock", parse_no_kvmclock); static struct pvclock_vsyscall_time_info *hv_clock; static struct pvclock_wall_clock wall_clock; -struct pvclock_vsyscall_time_info *pvclock_pvti_cpu0_va(void) -{ - return hv_clock; -} - /* * The wallclock is the time of day when we booted. Since then, some time may * have elapsed since the hypervisor wrote the data. So we try to account for @@ -330,6 +325,7 @@ int __init kvm_setup_vsyscall_timeinfo(void) return 1; } + pvclock_set_pvti_cpu0_va(hv_clock); put_cpu(); kvm_clock.archdata.vclock_mode = VCLOCK_PVCLOCK; diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c index 9e93fe5..b281060 100644 --- a/arch/x86/kernel/pvclock.c +++ b/arch/x86/kernel/pvclock.c @@ -23,8 +23,10 @@ #include <linux/bootmem.h> #include <asm/fixmap.h> #include <asm/pvclock.h> +#include <asm/vgtod.h> static u8 valid_flags __read_mostly = 0; +static struct pvclock_vsyscall_time_info *pvti_cpu0_va __read_mostly = NULL; void pvclock_set_flags(u8 flags) { @@ -142,3 +144,14 @@ void pvclock_read_wallclock(struct pvclock_wall_clock *wall_clock, set_normalized_timespec(ts, now.tv_sec, now.tv_nsec); } + +void pvclock_set_pvti_cpu0_va(struct pvclock_vsyscall_time_info *pvti) +{ + WARN_ON(vclock_was_used(VCLOCK_PVCLOCK)); + pvti_cpu0_va = pvti; +} + +struct pvclock_vsyscall_time_info *pvclock_pvti_cpu0_va(void) +{ + return pvti_cpu0_va; +} -- 2.1.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v1 1/3] x86/pvclock: add setter for pvclock_pvti_cpu0_va 2017-01-25 17:33 ` [PATCH v1 1/3] x86/pvclock: add setter for pvclock_pvti_cpu0_va Joao Martins @ 2017-01-26 17:25 ` Andy Lutomirski 2017-01-26 19:58 ` Joao Martins 0 siblings, 1 reply; 7+ messages in thread From: Andy Lutomirski @ 2017-01-26 17:25 UTC (permalink / raw) To: Joao Martins Cc: xen-devel, kvm list, Radim Krcmar, X86 ML, linux-kernel@vger.kernel.org, Ingo Molnar, H. Peter Anvin, Paolo Bonzini, Thomas Gleixner On Wed, Jan 25, 2017 at 9:33 AM, Joao Martins <joao.m.martins@oracle.com> wrote: > Right now there is only a pvclock_pvti_cpu0_va() which is defined > on kvmclock since: > > commit dac16fba6fc5 > ("x86/vdso: Get pvclock data from the vvar VMA instead of the fixmap") > > The only user of this interface was kvm. This commit moves > pvclock_pvti_cpu0_va to pvclock which is a more generic place to have it > and adds the correspondent setter routine for it. This allows other > pvclock-based clocksources to use it, such as Xen. With a minor nit: Acked-by: Andy Lutomirski <luto@kernel.org> > +#else > +static inline void pvclock_set_pvti_cpu0_va(struct pvclock_vsyscall_time_info *pvti) > +{ > +} How about just not providing pvclock_set_pvti_cpu0_va() in this case? It'll save three lines of code, and, more importantly, it will force us to notice if we screw up the Kconfig stuff. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v1 1/3] x86/pvclock: add setter for pvclock_pvti_cpu0_va 2017-01-26 17:25 ` Andy Lutomirski @ 2017-01-26 19:58 ` Joao Martins 0 siblings, 0 replies; 7+ messages in thread From: Joao Martins @ 2017-01-26 19:58 UTC (permalink / raw) To: Andy Lutomirski Cc: linux-kernel@vger.kernel.org, kvm list, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, X86 ML, Paolo Bonzini, Radim Krcmar, xen-devel On 01/26/2017 05:25 PM, Andy Lutomirski wrote: > On Wed, Jan 25, 2017 at 9:33 AM, Joao Martins <joao.m.martins@oracle.com> wrote: >> Right now there is only a pvclock_pvti_cpu0_va() which is defined >> on kvmclock since: >> >> commit dac16fba6fc5 >> ("x86/vdso: Get pvclock data from the vvar VMA instead of the fixmap") >> >> The only user of this interface was kvm. This commit moves >> pvclock_pvti_cpu0_va to pvclock which is a more generic place to have it >> and adds the correspondent setter routine for it. This allows other >> pvclock-based clocksources to use it, such as Xen. > > With a minor nit: > > Acked-by: Andy Lutomirski <luto@kernel.org> > >> +#else >> +static inline void pvclock_set_pvti_cpu0_va(struct pvclock_vsyscall_time_info *pvti) >> +{ >> +} > > How about just not providing pvclock_set_pvti_cpu0_va() in this case? > It'll save three lines of code, and, more importantly, it will force > us to notice if we screw up the Kconfig stuff. Sounds good, will remove this then. Thanks! Joao ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v1 3/3] MAINTAINERS: xen, kvm: track pvclock-abi.h changes [not found] <1485365586-21653-1-git-send-email-joao.m.martins@oracle.com> 2017-01-25 17:33 ` [PATCH v1 1/3] x86/pvclock: add setter for pvclock_pvti_cpu0_va Joao Martins @ 2017-01-25 17:33 ` Joao Martins 2017-01-26 17:25 ` Andy Lutomirski 2017-01-27 14:54 ` Juergen Gross 1 sibling, 2 replies; 7+ messages in thread From: Joao Martins @ 2017-01-25 17:33 UTC (permalink / raw) To: linux-kernel, xen-devel, kvm Cc: Joao Martins, Boris Ostrovsky, Juergen Gross, Paolo Bonzini, Radim Krcmar, Andy Lutomirski This file defines an ABI shared between guest and hypervisor(s) (KVM, Xen) and as such there should be an correspondent entry in MAINTAINERS file. Notice that there's already a text notice at the top of the header file, hence this commit simply enforces it more explicitly and have both peers noticed when such changes happen. Signed-off-by: Joao Martins <joao.m.martins@oracle.com> --- This was suggested by folks at xen-devel as we missed some of the ABI additions (e.g. flags field in pvti, TSC stable bit) - so this patch is to help preventing that from happening. Alternatively I could instead add a "PVCLOCK ABI" section in this file with the two mailing lists. --- MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 26edd83..c4315d1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -7041,6 +7041,7 @@ F: Documentation/virtual/kvm/ F: arch/*/kvm/ F: arch/x86/kernel/kvm.c F: arch/x86/kernel/kvmclock.c +F: arch/x86/include/asm/pvclock-abi.h F: arch/*/include/asm/kvm* F: include/linux/kvm* F: include/uapi/linux/kvm* @@ -13483,6 +13484,7 @@ M: Juergen Gross <jgross@suse.com> L: xen-devel@lists.xenproject.org (moderated for non-subscribers) T: git git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git S: Supported +F: arch/x86/include/asm/pvclock-abi.h F: arch/x86/xen/ F: drivers/*/xen-*front.c F: drivers/xen/ -- 2.1.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v1 3/3] MAINTAINERS: xen, kvm: track pvclock-abi.h changes 2017-01-25 17:33 ` [PATCH v1 3/3] MAINTAINERS: xen, kvm: track pvclock-abi.h changes Joao Martins @ 2017-01-26 17:25 ` Andy Lutomirski 2017-01-26 20:08 ` Joao Martins 2017-01-27 14:54 ` Juergen Gross 1 sibling, 1 reply; 7+ messages in thread From: Andy Lutomirski @ 2017-01-26 17:25 UTC (permalink / raw) To: Joao Martins Cc: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, kvm list, Boris Ostrovsky, Juergen Gross, Paolo Bonzini, Radim Krcmar On Wed, Jan 25, 2017 at 9:33 AM, Joao Martins <joao.m.martins@oracle.com> wrote: > This file defines an ABI shared between guest and hypervisor(s) > (KVM, Xen) and as such there should be an correspondent entry in > MAINTAINERS file. Notice that there's already a text notice at the > top of the header file, hence this commit simply enforces it more > explicitly and have both peers noticed when such changes happen. > > Signed-off-by: Joao Martins <joao.m.martins@oracle.com> > --- > This was suggested by folks at xen-devel as we missed some of the > ABI additions (e.g. flags field in pvti, TSC stable bit) - so this > patch is to help preventing that from happening. Alternatively I > could instead add a "PVCLOCK ABI" section in this file with the > two mailing lists. If you do the latter, please add me as an R:. --Andy ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v1 3/3] MAINTAINERS: xen, kvm: track pvclock-abi.h changes 2017-01-26 17:25 ` Andy Lutomirski @ 2017-01-26 20:08 ` Joao Martins 0 siblings, 0 replies; 7+ messages in thread From: Joao Martins @ 2017-01-26 20:08 UTC (permalink / raw) To: Andy Lutomirski Cc: linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, kvm list, Boris Ostrovsky, Juergen Gross, Paolo Bonzini, Radim Krcmar On 01/26/2017 05:25 PM, Andy Lutomirski wrote: > On Wed, Jan 25, 2017 at 9:33 AM, Joao Martins <joao.m.martins@oracle.com> wrote: >> This file defines an ABI shared between guest and hypervisor(s) >> (KVM, Xen) and as such there should be an correspondent entry in >> MAINTAINERS file. Notice that there's already a text notice at the >> top of the header file, hence this commit simply enforces it more >> explicitly and have both peers noticed when such changes happen. >> >> Signed-off-by: Joao Martins <joao.m.martins@oracle.com> >> --- >> This was suggested by folks at xen-devel as we missed some of the >> ABI additions (e.g. flags field in pvti, TSC stable bit) - so this >> patch is to help preventing that from happening. Alternatively I >> could instead add a "PVCLOCK ABI" section in this file with the >> two mailing lists. > > If you do the latter, please add me as an R:. OK, Thanks. Since the ABI is used on both hypervisors I'll leave/wait for maintainers to voice their preference. Joao ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v1 3/3] MAINTAINERS: xen, kvm: track pvclock-abi.h changes 2017-01-25 17:33 ` [PATCH v1 3/3] MAINTAINERS: xen, kvm: track pvclock-abi.h changes Joao Martins 2017-01-26 17:25 ` Andy Lutomirski @ 2017-01-27 14:54 ` Juergen Gross 1 sibling, 0 replies; 7+ messages in thread From: Juergen Gross @ 2017-01-27 14:54 UTC (permalink / raw) To: Joao Martins, linux-kernel, xen-devel, kvm Cc: Paolo Bonzini, Boris Ostrovsky, Andy Lutomirski, Radim Krcmar On 25/01/17 18:33, Joao Martins wrote: > This file defines an ABI shared between guest and hypervisor(s) > (KVM, Xen) and as such there should be an correspondent entry in > MAINTAINERS file. Notice that there's already a text notice at the > top of the header file, hence this commit simply enforces it more > explicitly and have both peers noticed when such changes happen. > > Signed-off-by: Joao Martins <joao.m.martins@oracle.com> > --- > This was suggested by folks at xen-devel as we missed some of the > ABI additions (e.g. flags field in pvti, TSC stable bit) - so this > patch is to help preventing that from happening. Alternatively I > could instead add a "PVCLOCK ABI" section in this file with the > two mailing lists. I don't mind either way. In case of an own section: make it more generic like "PARAVIRT ABIS" as there might be more than PVCLOCK (if not now maybe in future). For both variants: Acked-by: Juergen Gross <jgross@suse.com> Juergen > --- > MAINTAINERS | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/MAINTAINERS b/MAINTAINERS > index 26edd83..c4315d1 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -7041,6 +7041,7 @@ F: Documentation/virtual/kvm/ > F: arch/*/kvm/ > F: arch/x86/kernel/kvm.c > F: arch/x86/kernel/kvmclock.c > +F: arch/x86/include/asm/pvclock-abi.h > F: arch/*/include/asm/kvm* > F: include/linux/kvm* > F: include/uapi/linux/kvm* > @@ -13483,6 +13484,7 @@ M: Juergen Gross <jgross@suse.com> > L: xen-devel@lists.xenproject.org (moderated for non-subscribers) > T: git git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git > S: Supported > +F: arch/x86/include/asm/pvclock-abi.h > F: arch/x86/xen/ > F: drivers/*/xen-*front.c > F: drivers/xen/ > _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-01-27 14:54 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1485365586-21653-1-git-send-email-joao.m.martins@oracle.com>
2017-01-25 17:33 ` [PATCH v1 1/3] x86/pvclock: add setter for pvclock_pvti_cpu0_va Joao Martins
2017-01-26 17:25 ` Andy Lutomirski
2017-01-26 19:58 ` Joao Martins
2017-01-25 17:33 ` [PATCH v1 3/3] MAINTAINERS: xen, kvm: track pvclock-abi.h changes Joao Martins
2017-01-26 17:25 ` Andy Lutomirski
2017-01-26 20:08 ` Joao Martins
2017-01-27 14:54 ` Juergen Gross
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).