Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Fix imprecise timer interrupts by eliminating TSC clockevents frequency roundoff...
[kvmfornfv.git]
/
kernel
/
arch
/
x86
/
kernel
/
apic
/
apic.c
diff --git
a/kernel/arch/x86/kernel/apic/apic.c
b/kernel/arch/x86/kernel/apic/apic.c
index
2f69e3b
..
d2eee3e
100644
(file)
--- a/
kernel/arch/x86/kernel/apic/apic.c
+++ b/
kernel/arch/x86/kernel/apic/apic.c
@@
-305,7
+305,7
@@
int lapic_get_maxlvt(void)
/* Clock divisor */
#define APIC_DIVISOR 16
/* Clock divisor */
#define APIC_DIVISOR 16
-#define TSC_DIVISOR
32
+#define TSC_DIVISOR
8
/*
* This function sets up the local APIC timer, with a timeout of
/*
* This function sets up the local APIC timer, with a timeout of
@@
-557,7
+557,7
@@
static void setup_APIC_timer(void)
CLOCK_EVT_FEAT_DUMMY);
levt->set_next_event = lapic_next_deadline;
clockevents_config_and_register(levt,
CLOCK_EVT_FEAT_DUMMY);
levt->set_next_event = lapic_next_deadline;
clockevents_config_and_register(levt,
-
(tsc_khz / TSC_DIVISOR) * 1000
,
+
tsc_khz * (1000 / TSC_DIVISOR)
,
0xF, ~0UL);
} else
clockevents_register_device(levt);
0xF, ~0UL);
} else
clockevents_register_device(levt);