* [PATCH v4 1/3] x86/pvclock: add setter for pvclock_pvti_cpu0_va
[not found] <20170927134623.3147-1-joao.m.martins@oracle.com>
@ 2017-09-27 13:46 ` Joao Martins
2017-09-27 13:46 ` [PATCH v4 3/3] MAINTAINERS: xen, kvm: track pvclock-abi.h changes Joao Martins
1 sibling, 0 replies; 4+ messages in thread
From: Joao Martins @ 2017-09-27 13:46 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 so far is kvm. This commit adds a
setter function for the pvti page and moves pvclock_pvti_cpu0_va
to pvclock, which is a more generic place to have it; and would
allow other PV clocksources to use it, such as Xen.
Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
Acked-by: Andy Lutomirski <luto@kernel.org>
---
Changes since v1:
* Rebased: the only conflict was that I had move the export
pvclock_pvti_cpu0_va() symbol as it is used by kvm PTP driver.
* Do not initialize pvti_cpu0_va to NULL (checkpatch error)
( Comments from Andy Lutomirski )
* Removed asm/pvclock.h 'pvclock_set_pvti_cpu0_va' definition
for non !PARAVIRT_CLOCK to better track screwed Kconfig stuff.
* Add his Acked-by (provided the previous adjustment was made)
Changes since RFC:
(Comments from Andy Lutomirski)
* Add __init to pvclock_set_pvti_cpu0_va
* Add WARN_ON(vclock_was_used(VCLOCK_PVCLOCK)) to
pvclock_set_pvti_cpu0_va
---
arch/x86/include/asm/pvclock.h | 19 ++++++++++---------
arch/x86/kernel/kvmclock.c | 7 +------
arch/x86/kernel/pvclock.c | 14 ++++++++++++++
3 files changed, 25 insertions(+), 15 deletions(-)
diff --git a/arch/x86/include/asm/pvclock.h b/arch/x86/include/asm/pvclock.h
index 448cfe1b48cf..6f228f90cdd7 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,14 @@ 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 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 d88967659098..538738047ff5 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -47,12 +47,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;
-}
-EXPORT_SYMBOL_GPL(pvclock_pvti_cpu0_va);
-
/*
* 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
@@ -334,6 +328,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 5c3f6d6a5078..cb7d6d9c9c2d 100644
--- a/arch/x86/kernel/pvclock.c
+++ b/arch/x86/kernel/pvclock.c
@@ -25,8 +25,10 @@
#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;
void pvclock_set_flags(u8 flags)
{
@@ -144,3 +146,15 @@ 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;
+}
+EXPORT_SYMBOL_GPL(pvclock_pvti_cpu0_va);
--
2.11.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v4 3/3] MAINTAINERS: xen, kvm: track pvclock-abi.h changes
[not found] <20170927134623.3147-1-joao.m.martins@oracle.com>
2017-09-27 13:46 ` [PATCH v4 1/3] x86/pvclock: add setter for pvclock_pvti_cpu0_va Joao Martins
@ 2017-09-27 13:46 ` Joao Martins
2017-09-27 16:06 ` Konrad Rzeszutek Wilk
1 sibling, 1 reply; 4+ messages in thread
From: Joao Martins @ 2017-09-27 13:46 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>
Acked-by: Juergen Gross <jgross@suse.com>
---
In the end, I choose the originally posted because this is so far the
only ABI shared between Xen/KVM. Therefore whenever we have more things
shared it would deserve its own place in MAINTAINERS file. If the
thinking is wrong, I can switch to the alternative with a
"PARAVIRT ABIS" section.
Changes since v1:
* Add Juergen Gross Acked-by.
---
MAINTAINERS | 2 ++
1 file changed, 2 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 6671f375f7fc..a4834c3c377a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -7603,6 +7603,7 @@ S: Supported
F: arch/x86/kvm/
F: arch/x86/include/uapi/asm/kvm*
F: arch/x86/include/asm/kvm*
+F: arch/x86/include/asm/pvclock-abi.h
F: arch/x86/kernel/kvm.c
F: arch/x86/kernel/kvmclock.c
@@ -14718,6 +14719,7 @@ F: arch/x86/xen/
F: drivers/*/xen-*front.c
F: drivers/xen/
F: arch/x86/include/asm/xen/
+F: arch/x86/include/asm/pvclock-abi.h
F: include/xen/
F: include/uapi/xen/
F: Documentation/ABI/stable/sysfs-hypervisor-xen
--
2.11.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v4 3/3] MAINTAINERS: xen, kvm: track pvclock-abi.h changes
2017-09-27 13:46 ` [PATCH v4 3/3] MAINTAINERS: xen, kvm: track pvclock-abi.h changes Joao Martins
@ 2017-09-27 16:06 ` Konrad Rzeszutek Wilk
2017-09-28 10:56 ` Paolo Bonzini
0 siblings, 1 reply; 4+ messages in thread
From: Konrad Rzeszutek Wilk @ 2017-09-27 16:06 UTC (permalink / raw)
To: Joao Martins
Cc: Juergen Gross, kvm, Radim Krcmar, linux-kernel, Andy Lutomirski,
Paolo Bonzini, xen-devel, Boris Ostrovsky
On Wed, Sep 27, 2017 at 02:46:23PM +0100, 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>
> Acked-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> ---
> In the end, I choose the originally posted because this is so far the
> only ABI shared between Xen/KVM. Therefore whenever we have more things
> shared it would deserve its own place in MAINTAINERS file. If the
> thinking is wrong, I can switch to the alternative with a
> "PARAVIRT ABIS" section.
>
> Changes since v1:
> * Add Juergen Gross Acked-by.
> ---
> MAINTAINERS | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 6671f375f7fc..a4834c3c377a 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -7603,6 +7603,7 @@ S: Supported
> F: arch/x86/kvm/
> F: arch/x86/include/uapi/asm/kvm*
> F: arch/x86/include/asm/kvm*
> +F: arch/x86/include/asm/pvclock-abi.h
> F: arch/x86/kernel/kvm.c
> F: arch/x86/kernel/kvmclock.c
>
> @@ -14718,6 +14719,7 @@ F: arch/x86/xen/
> F: drivers/*/xen-*front.c
> F: drivers/xen/
> F: arch/x86/include/asm/xen/
> +F: arch/x86/include/asm/pvclock-abi.h
> F: include/xen/
> F: include/uapi/xen/
> F: Documentation/ABI/stable/sysfs-hypervisor-xen
> --
> 2.11.0
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v4 3/3] MAINTAINERS: xen, kvm: track pvclock-abi.h changes
2017-09-27 16:06 ` Konrad Rzeszutek Wilk
@ 2017-09-28 10:56 ` Paolo Bonzini
0 siblings, 0 replies; 4+ messages in thread
From: Paolo Bonzini @ 2017-09-28 10:56 UTC (permalink / raw)
To: Konrad Rzeszutek Wilk, Joao Martins
Cc: linux-kernel, xen-devel, kvm, Boris Ostrovsky, Juergen Gross,
Radim Krcmar, Andy Lutomirski
On 27/09/2017 18:06, Konrad Rzeszutek Wilk wrote:
> On Wed, Sep 27, 2017 at 02:46:23PM +0100, 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>
>> Acked-by: Juergen Gross <jgross@suse.com>
>
> Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
>> ---
>> In the end, I choose the originally posted because this is so far the
>> only ABI shared between Xen/KVM. Therefore whenever we have more things
>> shared it would deserve its own place in MAINTAINERS file. If the
>> thinking is wrong, I can switch to the alternative with a
>> "PARAVIRT ABIS" section.
>>
>> Changes since v1:
>> * Add Juergen Gross Acked-by.
>> ---
>> MAINTAINERS | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 6671f375f7fc..a4834c3c377a 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -7603,6 +7603,7 @@ S: Supported
>> F: arch/x86/kvm/
>> F: arch/x86/include/uapi/asm/kvm*
>> F: arch/x86/include/asm/kvm*
>> +F: arch/x86/include/asm/pvclock-abi.h
>> F: arch/x86/kernel/kvm.c
>> F: arch/x86/kernel/kvmclock.c
>>
>> @@ -14718,6 +14719,7 @@ F: arch/x86/xen/
>> F: drivers/*/xen-*front.c
>> F: drivers/xen/
>> F: arch/x86/include/asm/xen/
>> +F: arch/x86/include/asm/pvclock-abi.h
>> F: include/xen/
>> F: include/uapi/xen/
>> F: Documentation/ABI/stable/sysfs-hypervisor-xen
>> --
>> 2.11.0
>>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-09-28 10:56 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20170927134623.3147-1-joao.m.martins@oracle.com>
2017-09-27 13:46 ` [PATCH v4 1/3] x86/pvclock: add setter for pvclock_pvti_cpu0_va Joao Martins
2017-09-27 13:46 ` [PATCH v4 3/3] MAINTAINERS: xen, kvm: track pvclock-abi.h changes Joao Martins
2017-09-27 16:06 ` Konrad Rzeszutek Wilk
2017-09-28 10:56 ` Paolo Bonzini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox