Displaying 8 results from an estimated 8 matches for "custom_sched_clock".
2007 Apr 18
1
[PATCH 2/9] Sched clock paravirt op fix.patch
The custom_sched_clock hook is broken. The result from sched_clock needs to be
in nanoseconds, not in CPU cycles. The TSC is insufficient for this purpose,
because TSC is poorly defined in a virtual environment, and mostly represents
real world time instead of scheduled process time (which can be interrupted
without no...
2007 Apr 18
1
[PATCH 2/9] Sched clock paravirt op fix.patch
The custom_sched_clock hook is broken. The result from sched_clock needs to be
in nanoseconds, not in CPU cycles. The TSC is insufficient for this purpose,
because TSC is poorly defined in a virtual environment, and mostly represents
real world time instead of scheduled process time (which can be interrupted
without no...
2007 Apr 18
0
[PATCH 6/6] VMI timer patches
...atic long clock_cmos_diff;
diff -r 77e4058e936b arch/i386/kernel/tsc.c
--- a/arch/i386/kernel/tsc.c Thu Dec 14 16:40:14 2006 -0800
+++ b/arch/i386/kernel/tsc.c Thu Dec 14 16:40:16 2006 -0800
@@ -23,6 +23,7 @@
* an extra value to store the TSC freq
*/
unsigned int tsc_khz;
+unsigned long long (*custom_sched_clock)(void);
int tsc_disable __cpuinitdata = 0;
@@ -107,6 +108,9 @@ unsigned long long sched_clock(void)
{
unsigned long long this_offset;
+ if (unlikely(custom_sched_clock))
+ return (*custom_sched_clock)();
+
/*
* in the NUMA case we dont use the TSC as they are not
* synchronized a...
2007 Apr 18
0
[PATCH 6/6] VMI timer patches
...atic long clock_cmos_diff;
diff -r 77e4058e936b arch/i386/kernel/tsc.c
--- a/arch/i386/kernel/tsc.c Thu Dec 14 16:40:14 2006 -0800
+++ b/arch/i386/kernel/tsc.c Thu Dec 14 16:40:16 2006 -0800
@@ -23,6 +23,7 @@
* an extra value to store the TSC freq
*/
unsigned int tsc_khz;
+unsigned long long (*custom_sched_clock)(void);
int tsc_disable __cpuinitdata = 0;
@@ -107,6 +108,9 @@ unsigned long long sched_clock(void)
{
unsigned long long this_offset;
+ if (unlikely(custom_sched_clock))
+ return (*custom_sched_clock)();
+
/*
* in the NUMA case we dont use the TSC as they are not
* synchronized a...
2007 Apr 18
0
[PATCH 5/5] Vmi timer.patch
...atic long clock_cmos_diff;
diff -r d1ec5a6e3e8c arch/i386/kernel/tsc.c
--- a/arch/i386/kernel/tsc.c Tue Dec 12 13:53:09 2006 -0800
+++ b/arch/i386/kernel/tsc.c Tue Dec 12 13:53:15 2006 -0800
@@ -23,6 +23,7 @@
* an extra value to store the TSC freq
*/
unsigned int tsc_khz;
+unsigned long long (*custom_sched_clock)(void);
int tsc_disable __cpuinitdata = 0;
@@ -107,6 +108,9 @@ unsigned long long sched_clock(void)
{
unsigned long long this_offset;
+ if (unlikely(custom_sched_clock))
+ return (*custom_sched_clock)();
+
/*
* in the NUMA case we dont use the TSC as they are not
* synchronized a...
2007 Apr 18
0
[PATCH 5/5] Vmi timer.patch
...atic long clock_cmos_diff;
diff -r d1ec5a6e3e8c arch/i386/kernel/tsc.c
--- a/arch/i386/kernel/tsc.c Tue Dec 12 13:53:09 2006 -0800
+++ b/arch/i386/kernel/tsc.c Tue Dec 12 13:53:15 2006 -0800
@@ -23,6 +23,7 @@
* an extra value to store the TSC freq
*/
unsigned int tsc_khz;
+unsigned long long (*custom_sched_clock)(void);
int tsc_disable __cpuinitdata = 0;
@@ -107,6 +108,9 @@ unsigned long long sched_clock(void)
{
unsigned long long this_offset;
+ if (unlikely(custom_sched_clock))
+ return (*custom_sched_clock)();
+
/*
* in the NUMA case we dont use the TSC as they are not
* synchronized a...
2007 Apr 18
0
[PATCH 1/9] Vmi timer fixes round two.patch
...t);
-#else
- vmi_ops.halt = vmi_get_function(VMI_CALL_Halt);
- paravirt_ops.safe_halt = vmi_safe_halt;
-#endif
+
para_fill(wbinvd, WBINVD);
/* paravirt_ops.read_msr = vmi_rdmsr */
/* paravirt_ops.write_msr = vmi_wrmsr */
@@ -881,6 +875,12 @@ static inline int __init activate_vmi(vo
#endif
custom_sched_clock = vmi_sched_clock;
}
+ if (!disable_noidle)
+ para_fill(safe_halt, Halt);
+ else {
+ vmi_ops.halt = vmi_get_function(VMI_CALL_Halt);
+ paravirt_ops.safe_halt = vmi_safe_halt;
+ }
/*
* Alternative instruction rewriting doesn't happen soon enough
@@ -914,9 +914,11 @@ void __init vmi_i...
2007 Apr 18
0
[PATCH 1/9] Vmi timer fixes round two.patch
...t);
-#else
- vmi_ops.halt = vmi_get_function(VMI_CALL_Halt);
- paravirt_ops.safe_halt = vmi_safe_halt;
-#endif
+
para_fill(wbinvd, WBINVD);
/* paravirt_ops.read_msr = vmi_rdmsr */
/* paravirt_ops.write_msr = vmi_wrmsr */
@@ -881,6 +875,12 @@ static inline int __init activate_vmi(vo
#endif
custom_sched_clock = vmi_sched_clock;
}
+ if (!disable_noidle)
+ para_fill(safe_halt, Halt);
+ else {
+ vmi_ops.halt = vmi_get_function(VMI_CALL_Halt);
+ paravirt_ops.safe_halt = vmi_safe_halt;
+ }
/*
* Alternative instruction rewriting doesn't happen soon enough
@@ -914,9 +914,11 @@ void __init vmi_i...