Displaying 20 results from an estimated 39 matches for "vclock_gettim".
Did you mean:
vclock_gettime
2018 Sep 17
11
[patch V2 00/11] x86/vdso: Cleanups, simmplifications and CLOCK_TAI support
...ce depends heavily on the micro architecture and the compiler.
Changes vs. V1:
- Fix the VCLOCK_MAX sanity check
- Remove the magic clock masking and extend the storage array
Thanks,
tglx
8<-------------------
arch/x86/Kconfig | 1
arch/x86/entry/vdso/vclock_gettime.c | 199 ++++++++------------------------
arch/x86/entry/vsyscall/vsyscall_gtod.c | 55 ++++----
arch/x86/include/asm/vgtod.h | 42 +++---
arch/x86/kernel/time.c | 22 +++
include/linux/clocksource.h | 5
kernel/time/Kconfig...
2017 Feb 08
3
[PATCH RFC 0/2] x86/vdso: Add Hyper-V TSC page clocksource support
...:
# time sysbench --test=memory --max-requests=500000 run
...
real 0m50.218s
user 0m50.171s
sys 0m0.016s
So it seems it is worth it. What do you think?
Vitaly Kuznetsov (2):
hyperv: implement hv_get_tsc_page()
x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
arch/x86/entry/vdso/vclock_gettime.c | 48 ++++++++++++++++++++++++++++++++++++
arch/x86/entry/vdso/vma.c | 26 +++++++++++++------
arch/x86/hyperv/hv_init.c | 8 ++++++
arch/x86/include/asm/clocksource.h | 3 ++-
arch/x86/include/asm/mshyperv.h | 8 ++++++
drivers/hv/Kconfig | 5 +...
2017 Feb 08
3
[PATCH RFC 0/2] x86/vdso: Add Hyper-V TSC page clocksource support
...:
# time sysbench --test=memory --max-requests=500000 run
...
real 0m50.218s
user 0m50.171s
sys 0m0.016s
So it seems it is worth it. What do you think?
Vitaly Kuznetsov (2):
hyperv: implement hv_get_tsc_page()
x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
arch/x86/entry/vdso/vclock_gettime.c | 48 ++++++++++++++++++++++++++++++++++++
arch/x86/entry/vdso/vma.c | 26 +++++++++++++------
arch/x86/hyperv/hv_init.c | 8 ++++++
arch/x86/include/asm/clocksource.h | 3 ++-
arch/x86/include/asm/mshyperv.h | 8 ++++++
drivers/hv/Kconfig | 5 +...
2017 Feb 08
2
[PATCH RFC 2/2] x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
...y the hypervisor is different from VCLOCK_PVCLOCK. Implement the
> required support re-using pvclock_page VVAR as VCLOCK_PVCLOCK is mutually
> exclusive with VCLOCK_HVCLOCK at run time.
>
> Signed-off-by: Vitaly Kuznetsov <vkuznets at redhat.com>
> ---
> arch/x86/entry/vdso/vclock_gettime.c | 48 ++++++++++++++++++++++++++++++++++++
> arch/x86/entry/vdso/vma.c | 26 +++++++++++++------
> arch/x86/hyperv/hv_init.c | 3 +++
> arch/x86/include/asm/clocksource.h | 3 ++-
> 4 files changed, 72 insertions(+), 8 deletions(-)
>
> diff --git a/arc...
2017 Feb 08
2
[PATCH RFC 2/2] x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
...y the hypervisor is different from VCLOCK_PVCLOCK. Implement the
> required support re-using pvclock_page VVAR as VCLOCK_PVCLOCK is mutually
> exclusive with VCLOCK_HVCLOCK at run time.
>
> Signed-off-by: Vitaly Kuznetsov <vkuznets at redhat.com>
> ---
> arch/x86/entry/vdso/vclock_gettime.c | 48 ++++++++++++++++++++++++++++++++++++
> arch/x86/entry/vdso/vma.c | 26 +++++++++++++------
> arch/x86/hyperv/hv_init.c | 3 +++
> arch/x86/include/asm/clocksource.h | 3 ++-
> 4 files changed, 72 insertions(+), 8 deletions(-)
>
> diff --git a/arc...
2018 Sep 14
24
[patch 00/11] x86/vdso: Cleanups, simmplifications and CLOCK_TAI support
...which at the end all together gain a few
cycles performance or at least stay on par with todays code. The resulting
performance depends heavily on the micro architecture and the compiler.
Thanks,
tglx
8<-------------------
arch/x86/Kconfig | 1
arch/x86/entry/vdso/vclock_gettime.c | 199 ++++++++------------------------
arch/x86/entry/vsyscall/vsyscall_gtod.c | 55 ++++----
arch/x86/include/asm/vgtod.h | 46 ++++---
arch/x86/kernel/time.c | 22 +++
include/linux/clocksource.h | 5
kernel/time/Kconfig...
2018 Sep 14
24
[patch 00/11] x86/vdso: Cleanups, simmplifications and CLOCK_TAI support
...which at the end all together gain a few
cycles performance or at least stay on par with todays code. The resulting
performance depends heavily on the micro architecture and the compiler.
Thanks,
tglx
8<-------------------
arch/x86/Kconfig | 1
arch/x86/entry/vdso/vclock_gettime.c | 199 ++++++++------------------------
arch/x86/entry/vsyscall/vsyscall_gtod.c | 55 ++++----
arch/x86/include/asm/vgtod.h | 46 ++++---
arch/x86/kernel/time.c | 22 +++
include/linux/clocksource.h | 5
kernel/time/Kconfig...
2017 Feb 09
6
[PATCH 2/2] x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
On Thu, 9 Feb 2017, Vitaly Kuznetsov wrote:
> +#ifdef CONFIG_HYPERV_TSCPAGE
> +static notrace u64 vread_hvclock(int *mode)
> +{
> + const struct ms_hyperv_tsc_page *tsc_pg =
> + (const struct ms_hyperv_tsc_page *)&hvclock_page;
> + u64 sequence, scale, offset, current_tick, cur_tsc;
> +
> + while (1) {
> + sequence = READ_ONCE(tsc_pg->tsc_sequence);
> + if
2017 Feb 09
6
[PATCH 2/2] x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
On Thu, 9 Feb 2017, Vitaly Kuznetsov wrote:
> +#ifdef CONFIG_HYPERV_TSCPAGE
> +static notrace u64 vread_hvclock(int *mode)
> +{
> + const struct ms_hyperv_tsc_page *tsc_pg =
> + (const struct ms_hyperv_tsc_page *)&hvclock_page;
> + u64 sequence, scale, offset, current_tick, cur_tsc;
> +
> + while (1) {
> + sequence = READ_ONCE(tsc_pg->tsc_sequence);
> + if
2017 Feb 08
0
[PATCH RFC 2/2] x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
...wever, the protocol
defined by the hypervisor is different from VCLOCK_PVCLOCK. Implement the
required support re-using pvclock_page VVAR as VCLOCK_PVCLOCK is mutually
exclusive with VCLOCK_HVCLOCK at run time.
Signed-off-by: Vitaly Kuznetsov <vkuznets at redhat.com>
---
arch/x86/entry/vdso/vclock_gettime.c | 48 ++++++++++++++++++++++++++++++++++++
arch/x86/entry/vdso/vma.c | 26 +++++++++++++------
arch/x86/hyperv/hv_init.c | 3 +++
arch/x86/include/asm/clocksource.h | 3 ++-
4 files changed, 72 insertions(+), 8 deletions(-)
diff --git a/arch/x86/entry/vdso/vclock_getti...
2017 Feb 10
0
[PATCH 2/2] x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
...return current_tick;
>
> That sequence stuff lacks still a sensible explanation. It's fundamentally
> different from the sequence counting we do in the kernel, so documentation
> for it is really required.
Sure, do you think the following would do?
diff --git a/arch/x86/entry/vdso/vclock_gettime.c b/arch/x86/entry/vdso/vclock_gettime.c
index 4af10b4..886b600 100644
--- a/arch/x86/entry/vdso/vclock_gettime.c
+++ b/arch/x86/entry/vdso/vclock_gettime.c
@@ -154,6 +154,22 @@ static notrace u64 vread_hvclock(int *mode)
(const struct ms_hyperv_tsc_page *)&hvclock_page;...
2017 Feb 09
0
[PATCH 2/2] x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
Hyper-V TSC page clocksource is suitable for vDSO, however, the protocol
defined by the hypervisor is different from VCLOCK_PVCLOCK. Implement the
required support by adding hvclock_page VVAR.
Signed-off-by: Vitaly Kuznetsov <vkuznets at redhat.com>
---
arch/x86/entry/vdso/vclock_gettime.c | 36 +++++++++++++++++++++++++++++++++++
arch/x86/entry/vdso/vdso-layout.lds.S | 3 ++-
arch/x86/entry/vdso/vdso2c.c | 3 +++
arch/x86/entry/vdso/vma.c | 7 +++++++
arch/x86/hyperv/hv_init.c | 3 +++
arch/x86/include/asm/clocksource.h | 3 ++-
arch/x86/...
2018 Sep 17
1
[patch 00/11] x86/vdso: Cleanups, simmplifications and CLOCK_TAI support
...inutronix.de> wrote:
> A couple of architectures (s390, ia64, riscv, powerpc, arm64)
> implement the vdso as assembler code at the moment, so they
> won't be as easy to consolidate (other than outright replacing all
> the code).
>
> The other five:
> arch/x86/entry/vdso/vclock_gettime.c
> arch/sparc/vdso/vclock_gettime.c
> arch/nds32/kernel/vdso/gettimeofday.c
> arch/mips/vdso/gettimeofday.c
> arch/arm/vdso/vgettimeofday.c
>
> are basically all minor variations of the same code base and could be
> consolidated to some degree.
> Any suggestions here? Shou...
2018 Sep 14
0
[patch 11/11] x66/vdso: Add CLOCK_TAI support
...id 11 which results in 3 when masked with 0x3
Add the mask to the basetime array lookup and set up the CLOCK_TAI base
time in update_vsyscall().
The performance impact of the mask operation is within the noise.
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
arch/x86/entry/vdso/vclock_gettime.c | 2 +-
arch/x86/entry/vsyscall/vsyscall_gtod.c | 4 ++++
arch/x86/include/asm/vgtod.h | 6 +++++-
3 files changed, 10 insertions(+), 2 deletions(-)
--- a/arch/x86/entry/vdso/vclock_gettime.c
+++ b/arch/x86/entry/vdso/vclock_gettime.c
@@ -140,7 +140,7 @@ notrace static in...
2018 Sep 14
0
[patch 10/11] x86/vdso: Move cycle_last handling into the caller
...s generates horrible code. Doing
it at the call site is much better and gains a few cycles both for TSC and
pvclock.
Caveat: This adds the comparison to the hyperv vclock as well, but I have
no way to test that.
Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
arch/x86/entry/vdso/vclock_gettime.c | 39 ++++++-----------------------------
1 file changed, 7 insertions(+), 32 deletions(-)
--- a/arch/x86/entry/vdso/vclock_gettime.c
+++ b/arch/x86/entry/vdso/vclock_gettime.c
@@ -76,9 +76,8 @@ static notrace const struct pvclock_vsys
static notrace u64 vread_pvclock(void)
{
const struct...
2017 Feb 09
4
[PATCH 0/2] x86/vdso: Add Hyper-V TSC page clocksource support
...CK -> HYPERV_TSCPAGE to avoid the ambiguity.
I'm also going to try to optimize mul_u64_u64_shr() for 32bit but this can
be split from this series I guess.
Vitaly Kuznetsov (2):
hyperv: implement hv_get_tsc_page()
x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
arch/x86/entry/vdso/vclock_gettime.c | 36 +++++++++++++++++++++++++++++++++++
arch/x86/entry/vdso/vdso-layout.lds.S | 3 ++-
arch/x86/entry/vdso/vdso2c.c | 3 +++
arch/x86/entry/vdso/vma.c | 7 +++++++
arch/x86/hyperv/hv_init.c | 12 ++++++++++--
arch/x86/include/asm/clocksource.h | 3 ++-...
2017 Feb 09
4
[PATCH 0/2] x86/vdso: Add Hyper-V TSC page clocksource support
...CK -> HYPERV_TSCPAGE to avoid the ambiguity.
I'm also going to try to optimize mul_u64_u64_shr() for 32bit but this can
be split from this series I guess.
Vitaly Kuznetsov (2):
hyperv: implement hv_get_tsc_page()
x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
arch/x86/entry/vdso/vclock_gettime.c | 36 +++++++++++++++++++++++++++++++++++
arch/x86/entry/vdso/vdso-layout.lds.S | 3 ++-
arch/x86/entry/vdso/vdso2c.c | 3 +++
arch/x86/entry/vdso/vma.c | 7 +++++++
arch/x86/hyperv/hv_init.c | 12 ++++++++++--
arch/x86/include/asm/clocksource.h | 3 ++-...
2018 Sep 14
2
[patch 11/11] x66/vdso: Add CLOCK_TAI support
...l().
That?s... horrible. In an amazing way. Can you add BUILD_BUG_ON somewhere to assert that this actually works?
>
> The performance impact of the mask operation is within the noise.
>
> Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
> ---
> arch/x86/entry/vdso/vclock_gettime.c | 2 +-
> arch/x86/entry/vsyscall/vsyscall_gtod.c | 4 ++++
> arch/x86/include/asm/vgtod.h | 6 +++++-
> 3 files changed, 10 insertions(+), 2 deletions(-)
>
> --- a/arch/x86/entry/vdso/vclock_gettime.c
> +++ b/arch/x86/entry/vdso/vclock_gettime.c
> @@ -1...
2018 Sep 14
2
[patch 11/11] x66/vdso: Add CLOCK_TAI support
...l().
That?s... horrible. In an amazing way. Can you add BUILD_BUG_ON somewhere to assert that this actually works?
>
> The performance impact of the mask operation is within the noise.
>
> Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
> ---
> arch/x86/entry/vdso/vclock_gettime.c | 2 +-
> arch/x86/entry/vsyscall/vsyscall_gtod.c | 4 ++++
> arch/x86/include/asm/vgtod.h | 6 +++++-
> 3 files changed, 10 insertions(+), 2 deletions(-)
>
> --- a/arch/x86/entry/vdso/vclock_gettime.c
> +++ b/arch/x86/entry/vdso/vclock_gettime.c
> @@ -1...
2017 Feb 14
6
[PATCH v2 0/3] x86/vdso: Add Hyper-V TSC page clocksource support
...clocksource to arch/x86/hyperv/hv_init.c, this is currently present in
Greg's char-misc-next tree.
Vitaly Kuznetsov (3):
x86/hyperv: implement hv_get_tsc_page()
x86/hyperv: move TSC reading method to asm/mshyperv.h
x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
arch/x86/entry/vdso/vclock_gettime.c | 24 +++++++++++++++
arch/x86/entry/vdso/vdso-layout.lds.S | 3 +-
arch/x86/entry/vdso/vdso2c.c | 3 ++
arch/x86/entry/vdso/vma.c | 7 +++++
arch/x86/hyperv/hv_init.c | 48 +++++++++--------------------
arch/x86/include/asm/clocksource.h | 3 +-
arch/x86...