[Spice-devel] [RFC 33/33] xspice/qxl_ring: yield when ring is full

Alon Levy alevy at redhat.com
Wed Apr 27 08:56:22 PDT 2011


---
 src/qxl_ring.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/qxl_ring.c b/src/qxl_ring.c
index 0870ef1..02c4c35 100644
--- a/src/qxl_ring.c
+++ b/src/qxl_ring.c
@@ -75,7 +75,11 @@ qxl_ring_push (struct qxl_ring *ring,
     while (header->prod - header->cons == header->num_items)
     {
 	header->notify_on_cons = header->cons + 1;
-
+#ifdef XSPICE
+	/* in gtkperf, circles, this is a major bottleneck. Can't be that good in a vm either
+	 * Adding the yield reduces cpu usage, but doesn't improve throughput. */
+	pthread_yield();
+#endif
 	mem_barrier();
     }
 
-- 
1.7.4.4



More information about the Spice-devel mailing list