[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] x86/svm: Improve code generation from cpu_has_svm_feature()
Taking svm_feature_flags by pointer and using test_bit() results in generated code which loads svm_feature_flags into a 32bit register, then does a bitwise operation. The logic can be expressed in terms of a straight bitwise operation, resulting in the following minor improvement. add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-136 (-136) Function old new delta svm_nested_features_on_efer_update 281 273 -8 svm_create_vmcb 1404 1388 -16 svm_vmexit_handler 6271 6239 -32 start_svm 818 738 -80 Total: Before=3347569, After=3347433, chg -0.00% Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Wei Liu <wei.liu2@xxxxxxxxxx> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx> CC: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> CC: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx> CC: Brian Woods <brian.woods@xxxxxxx> --- xen/include/asm-x86/hvm/svm/svm.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/xen/include/asm-x86/hvm/svm/svm.h b/xen/include/asm-x86/hvm/svm/svm.h index 49dca39..6e688a8 100644 --- a/xen/include/asm-x86/hvm/svm/svm.h +++ b/xen/include/asm-x86/hvm/svm/svm.h @@ -21,7 +21,6 @@ #define __ASM_X86_HVM_SVM_H__ #include <xen/types.h> -#include <xen/bitmap.h> #define svm_vmload(x) svm_vmload_pa(__pa(x)) #define svm_vmsave(x) svm_vmsave_pa(__pa(x)) @@ -77,7 +76,7 @@ extern u32 svm_feature_flags; #define SVM_FEATURE_VLOADSAVE 15 /* virtual vmload/vmsave */ #define SVM_FEATURE_VGIF 16 /* Virtual GIF */ -#define cpu_has_svm_feature(f) test_bit(f, &svm_feature_flags) +#define cpu_has_svm_feature(f) (svm_feature_flags & (1u << (f))) #define cpu_has_svm_npt cpu_has_svm_feature(SVM_FEATURE_NPT) #define cpu_has_svm_lbrv cpu_has_svm_feature(SVM_FEATURE_LBRV) #define cpu_has_svm_svml cpu_has_svm_feature(SVM_FEATURE_SVML) -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |