[kvm-unit-tests PATCH] x86: eventinj: Do a real io_delay()

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

 



From: Nadav Amit <nadav.amit@xxxxxxxxx>

There is no guarantee that a self-IPI would be delivered immediately.
io_delay() is called after self-IPI is generated but does nothing.
Instead, change io_delay() to wait for 10000 cycles, which should be
enough on any system whatsoever.

Signed-off-by: Nadav Amit <nadav.amit@xxxxxxxxx>
---
 x86/eventinj.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/x86/eventinj.c b/x86/eventinj.c
index 8064eb9..250537b 100644
--- a/x86/eventinj.c
+++ b/x86/eventinj.c
@@ -18,6 +18,11 @@ void do_pf_tss(void);
 
 static inline void io_delay(void)
 {
+	u64 start = rdtsc();
+
+	do {
+		pause();
+	} while (rdtsc() - start < 10000);
 }
 
 static void apic_self_ipi(u8 v)
-- 
2.17.1




[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