[PATCH] KVM:make cpuid_entry2_find more efficient

Liam Ni posted 1 patch 3 years, 8 months ago
arch/x86/kvm/cpuid.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] KVM:make cpuid_entry2_find more efficient
Posted by Liam Ni 3 years, 8 months ago
Compared with the way of obtaining the pointer by
fetching the value of the array and then fetching the pointer,
the way of obtaining the pointer by the pointer offset is more efficient.

Signed-off-by: Liam Ni <zhiguangni01@gmail.com>
---
 arch/x86/kvm/cpuid.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index de6d44e07e34..3bf82a891564 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -75,7 +75,7 @@ static inline struct kvm_cpuid_entry2 *cpuid_entry2_find(
 	int i;
 
 	for (i = 0; i < nent; i++) {
-		e = &entries[i];
+		e = entries + i;
 
 		if (e->function == function &&
 		    (!(e->flags & KVM_CPUID_FLAG_SIGNIFCANT_INDEX) || e->index == index))
-- 
2.25.1
Re: [PATCH] KVM:make cpuid_entry2_find more efficient
Posted by Borislav Petkov 3 years, 8 months ago
On Tue, Aug 09, 2022 at 01:51:38PM +0800, Liam Ni wrote:
> Compared with the way of obtaining the pointer by
> fetching the value of the array and then fetching the pointer,
> the way of obtaining the pointer by the pointer offset is more efficient.

How did you determine that?

Hint: look at the generated assembler before and after your change and
see if there are any differences.

:-)

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette