Displaying 5 results from an estimated 5 matches for "config_hyperv_clock".
Did you mean:
config_hyperv_block
2017 Feb 08
3
[PATCH RFC 0/2] x86/vdso: Add Hyper-V TSC page clocksource support
Hi,
Hyper-V TSC page clocksource is suitable for vDSO, however, the protocol
defined by the hypervisor is different from VCLOCK_PVCLOCK. I implemented
the required support re-using pvclock_page VVAR. Simple sysbench test shows
the following results:
Before:
# time sysbench --test=memory --max-requests=500000 run
...
real 1m22.618s
user 0m50.193s
sys 0m32.268s
After:
# time sysbench
2017 Feb 08
3
[PATCH RFC 0/2] x86/vdso: Add Hyper-V TSC page clocksource support
Hi,
Hyper-V TSC page clocksource is suitable for vDSO, however, the protocol
defined by the hypervisor is different from VCLOCK_PVCLOCK. I implemented
the required support re-using pvclock_page VVAR. Simple sysbench test shows
the following results:
Before:
# time sysbench --test=memory --max-requests=500000 run
...
real 1m22.618s
user 0m50.193s
sys 0m32.268s
After:
# time sysbench
2017 Feb 08
2
[PATCH RFC 2/2] x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
...t;asm/pvclock.h>
> +#include <asm/mshyperv.h>
> #include <linux/math64.h>
> #include <linux/time.h>
> #include <linux/kernel.h>
> @@ -141,6 +142,49 @@ static notrace u64 vread_pvclock(int *mode)
> return last;
> }
> #endif
> +#ifdef CONFIG_HYPERV_CLOCK
> +/* (a * b) >> 64 implementation */
> +static inline u64 mul64x64_hi(u64 a, u64 b)
> +{
> + u64 a_lo, a_hi, b_lo, b_hi, p1, p2;
> +
> + a_lo = (u32)a;
> + a_hi = a >> 32;
> + b_lo = (u32)b;
> + b_hi = b >> 32;
> +...
2017 Feb 08
2
[PATCH RFC 2/2] x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
...t;asm/pvclock.h>
> +#include <asm/mshyperv.h>
> #include <linux/math64.h>
> #include <linux/time.h>
> #include <linux/kernel.h>
> @@ -141,6 +142,49 @@ static notrace u64 vread_pvclock(int *mode)
> return last;
> }
> #endif
> +#ifdef CONFIG_HYPERV_CLOCK
> +/* (a * b) >> 64 implementation */
> +static inline u64 mul64x64_hi(u64 a, u64 b)
> +{
> + u64 a_lo, a_hi, b_lo, b_hi, p1, p2;
> +
> + a_lo = (u32)a;
> + a_hi = a >> 32;
> + b_lo = (u32)b;
> + b_hi = b >> 32;
> +...
2017 Feb 08
0
[PATCH RFC 2/2] x86/vdso: Add VCLOCK_HVCLOCK vDSO clock read method
...istd.h>
#include <asm/msr.h>
#include <asm/pvclock.h>
+#include <asm/mshyperv.h>
#include <linux/math64.h>
#include <linux/time.h>
#include <linux/kernel.h>
@@ -141,6 +142,49 @@ static notrace u64 vread_pvclock(int *mode)
return last;
}
#endif
+#ifdef CONFIG_HYPERV_CLOCK
+/* (a * b) >> 64 implementation */
+static inline u64 mul64x64_hi(u64 a, u64 b)
+{
+ u64 a_lo, a_hi, b_lo, b_hi, p1, p2;
+
+ a_lo = (u32)a;
+ a_hi = a >> 32;
+ b_lo = (u32)b;
+ b_hi = b >> 32;
+ p1 = a_lo * b_hi;
+ p2 = a_hi * b_lo;
+
+ return a_hi * b_hi + (p1 >> 32) + (p2...