]> git.baikalelectronics.ru Git - kernel.git/commit
x86/apic: Implement EIO micro-optimization
authorMichael S. Tsirkin <mst@redhat.com>
Wed, 16 May 2012 16:03:58 +0000 (19:03 +0300)
committerIngo Molnar <mingo@kernel.org>
Fri, 18 May 2012 07:46:09 +0000 (09:46 +0200)
commit9ab7889d07e195317ffc32c4b9addcd28859a012
tree61295a9035f1f15fe32083ff1dbf6c83d73069b0
parentef1bdc27662f27f123006282c0fa74290ab1846b
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>
arch/x86/include/asm/apic.h
arch/x86/kernel/apic/x2apic_cluster.c
arch/x86/kernel/apic/x2apic_phys.c
arch/x86/kernel/apic/x2apic_uv_x.c