summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorWanpeng Li <wanpengli@tencent.com>2018-02-13 09:05:40 +0800
committerRadim Krčmář <rkrcmar@redhat.com>2018-03-06 18:40:44 +0100
commita4429e53c9b3082b05e51224c3d58dbdd39306c5 (patch)
treed0fbeff12679477198902c365cb23ad6b645747c /include
parentd4c67a7a54f12cb8d267284212f1072c95917e5a (diff)
downloadlinux-a4429e53c9b3082b05e51224c3d58dbdd39306c5.tar.gz
linux-a4429e53c9b3082b05e51224c3d58dbdd39306c5.tar.bz2
linux-a4429e53c9b3082b05e51224c3d58dbdd39306c5.zip
KVM: Introduce paravirtualization hints and KVM_HINTS_DEDICATED
This patch introduces kvm_para_has_hint() to query for hints about the configuration of the guests. The first hint KVM_HINTS_DEDICATED, is set if the guest has dedicated physical CPUs for each vCPU (i.e. pinning and no over-commitment). This allows optimizing spinlocks and tells the guest to avoid PV TLB flush. Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Radim Krčmář <rkrcmar@redhat.com> Cc: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Wanpeng Li <wanpengli@tencent.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
Diffstat (limited to 'include')
-rw-r--r--include/asm-generic/kvm_para.h5
-rw-r--r--include/linux/kvm_para.h5
2 files changed, 10 insertions, 0 deletions
diff --git a/include/asm-generic/kvm_para.h b/include/asm-generic/kvm_para.h
index 18c6abe81fbd..728e5c5706c4 100644
--- a/include/asm-generic/kvm_para.h
+++ b/include/asm-generic/kvm_para.h
@@ -19,6 +19,11 @@ static inline unsigned int kvm_arch_para_features(void)
return 0;
}
+static inline unsigned int kvm_arch_para_hints(void)
+{
+ return 0;
+}
+
static inline bool kvm_para_available(void)
{
return false;
diff --git a/include/linux/kvm_para.h b/include/linux/kvm_para.h
index 51f6ef2c2ff4..f23b90b02898 100644
--- a/include/linux/kvm_para.h
+++ b/include/linux/kvm_para.h
@@ -9,4 +9,9 @@ static inline bool kvm_para_has_feature(unsigned int feature)
{
return !!(kvm_arch_para_features() & (1UL << feature));
}
+
+static inline bool kvm_para_has_hint(unsigned int feature)
+{
+ return !!(kvm_arch_para_hints() & (1UL << feature));
+}
#endif /* __LINUX_KVM_PARA_H */