summaryrefslogtreecommitdiff
path: root/arch/x86/kernel/apic/x2apic_phys.c
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2012-05-16 19:03:58 +0300
committerIngo Molnar <mingo@kernel.org>2012-05-18 09:46:09 +0200
commit0ab711ae6ab0db7696b43c74f9ba9de4d7fc1deb (patch)
tree61295a9035f1f15fe32083ff1dbf6c83d73069b0 /arch/x86/kernel/apic/x2apic_phys.c
parent2a43195d831997551da93e6b3c22c965e93fe9cc (diff)
x86/apic: Implement EIO micro-optimization
We know both register and value for eoi beforehand, so there's no need to check it and no need to do math to calculate the msr. Saves instructions/branches on each EOI when using x2apic. I looked at the objdump output to verify that the generated code looks right and actually is shorter. The real improvemements will be on the KVM guest side though, those come in a later patch. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Cc: Avi Kivity <avi@redhat.com> Cc: Marcelo Tosatti <mtosatti@redhat.com> Cc: gleb@redhat.com Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: http://lkml.kernel.org/r/e019d1a125316f10d3e3a4b2f6bda41473f4fb72.1337184153.git.mst@redhat.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/kernel/apic/x2apic_phys.c')
-rw-r--r--arch/x86/kernel/apic/x2apic_phys.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/apic/x2apic_phys.c b/arch/x86/kernel/apic/x2apic_phys.c
index 834035666b8d..c17e982db275 100644
--- a/arch/x86/kernel/apic/x2apic_phys.c
+++ b/arch/x86/kernel/apic/x2apic_phys.c
@@ -172,7 +172,7 @@ static struct apic apic_x2apic_phys = {
.read = native_apic_msr_read,
.write = native_apic_msr_write,
- .eoi_write = native_apic_msr_write,
+ .eoi_write = native_apic_msr_eoi_write,
.icr_read = native_x2apic_icr_read,
.icr_write = native_x2apic_icr_write,
.wait_icr_idle = native_x2apic_wait_icr_idle,