* [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
* [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 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 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 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
* 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).