Re: [PATCH QEMU-KVM 6/7] test: Add ipi_halt benchmark

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/22/2009 04:54 AM, Marcelo Tosatti wrote:
On Mon, Sep 21, 2009 at 11:55:37AM +0300, Avi Kivity wrote:
Wait for 2000 cycles after the IPI to allow the host to schedule out.
Measures wake-from-idle overhead.

Signed-off-by: Avi Kivity<avi@xxxxxxxxxx>
---
  kvm/user/test/x86/vmexit.c |   11 +++++++++++
  1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/kvm/user/test/x86/vmexit.c b/kvm/user/test/x86/vmexit.c
index 29bb32a..5088dc9 100644
--- a/kvm/user/test/x86/vmexit.c
+++ b/kvm/user/test/x86/vmexit.c
@@ -66,6 +66,16 @@ static void ipi(void)
  	on_cpu(1, nop, 0);
  }

+static void ipi_halt(void)
+{
+	unsigned long long t;
+
+	on_cpu(1, nop, 0);
+	t = rdtsc() + 2000;
+	while (rdtsc()<  t)
+		;
I don't get the 2000 cycle thing. Since vcpu1 is on hlt by default, just
IPI'ing it to do nop() already includes wake-from-idle overhead?

Without the delay, by the time vcpu1 gets to schedule() it will already have been woken up by vcpu0. So it never switches to the idle thread.

The purpose of this test was to measure the just-in-time MSR switching, and that only helps if a context switch takes place.

--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux