linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] cpuidle-haltpoll: Enable kvm guest polling when dedicated physical CPUs are available
@ 2019-08-01  7:06 Wanpeng Li
  2019-08-01 16:51 ` Rafael J. Wysocki
  0 siblings, 1 reply; 19+ messages in thread
From: Wanpeng Li @ 2019-08-01  7:06 UTC (permalink / raw)
  To: linux-kernel, kvm
  Cc: Paolo Bonzini, Radim Krčmář,
	Rafael J . Wysocki, Marcelo Tosatti

From: Wanpeng Li <wanpengli@tencent.com>

The downside of guest side polling is that polling is performed even 
with other runnable tasks in the host. However, even if poll in kvm 
can aware whether or not other runnable tasks in the same pCPU, it 
can still incur extra overhead in over-subscribe scenario. Now we can 
just enable guest polling when dedicated pCPUs are available.

Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Radim Krčmář <rkrcmar@redhat.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Wanpeng Li <wanpengli@tencent.com>
---
 drivers/cpuidle/cpuidle-haltpoll.c   | 3 ++-
 drivers/cpuidle/governors/haltpoll.c | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/cpuidle/cpuidle-haltpoll.c b/drivers/cpuidle/cpuidle-haltpoll.c
index 9ac093d..7aee38a 100644
--- a/drivers/cpuidle/cpuidle-haltpoll.c
+++ b/drivers/cpuidle/cpuidle-haltpoll.c
@@ -53,7 +53,8 @@ static int __init haltpoll_init(void)
 
 	cpuidle_poll_state_init(drv);
 
-	if (!kvm_para_available())
+	if (!kvm_para_available() ||
+		!kvm_para_has_hint(KVM_HINTS_REALTIME))
 		return 0;
 
 	ret = cpuidle_register(&haltpoll_driver, NULL);
diff --git a/drivers/cpuidle/governors/haltpoll.c b/drivers/cpuidle/governors/haltpoll.c
index 797477b..685c7007 100644
--- a/drivers/cpuidle/governors/haltpoll.c
+++ b/drivers/cpuidle/governors/haltpoll.c
@@ -141,7 +141,7 @@ static struct cpuidle_governor haltpoll_governor = {
 
 static int __init init_haltpoll(void)
 {
-	if (kvm_para_available())
+	if (kvm_para_available() && kvm_para_has_hint(KVM_HINTS_REALTIME))
 		return cpuidle_register_governor(&haltpoll_governor);
 
 	return 0;
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2019-08-29 14:39 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-01  7:06 [PATCH] cpuidle-haltpoll: Enable kvm guest polling when dedicated physical CPUs are available Wanpeng Li
2019-08-01 16:51 ` Rafael J. Wysocki
2019-08-01 16:54   ` Paolo Bonzini
2019-08-03 20:21     ` Marcelo Tosatti
2019-08-13  0:55       ` Wanpeng Li
2019-08-13  7:55         ` Paolo Bonzini
2019-08-26 20:40         ` Marcelo Tosatti
2019-08-27  0:43           ` Wanpeng Li
2019-08-28  8:35             ` Wanpeng Li
2019-08-28  8:45               ` Rafael J. Wysocki
2019-08-28  8:48                 ` Wanpeng Li
2019-08-28 14:39                 ` Marcelo Tosatti
2019-08-28 23:37                   ` Rafael J. Wysocki
2019-08-29 12:04                     ` Marcelo Tosatti
2019-08-29 12:16                       ` Wanpeng Li
2019-08-29 12:53                         ` Marcelo Tosatti
2019-08-29 14:39                           ` Marcelo Tosatti
2019-08-28 14:48             ` Marcelo Tosatti
2019-08-28 14:52               ` Marcelo Tosatti

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).