[Spice-commits] 2 commits - server/red_worker.c

Alexander Larsson alexl at kemper.freedesktop.org
Mon Sep 20 04:37:02 PDT 2010


 server/red_worker.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit a5ce2c0edb09c199cdf1c64f468579f9746c77aa
Author: Alexander Larsson <alexl at redhat.com>
Date:   Thu Sep 9 18:56:45 2010 +0200

    server: Ensure we flush the release pipe after an oom
    
    We really need to flush the ring to ensure that we push something on the
    release ring. If we don't do this and the ring is not pushed for other
    reasons we will timeout in the guest driver waiting for the ring.

diff --git a/server/red_worker.c b/server/red_worker.c
index eb56aa4..ef1c998 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -9951,6 +9951,7 @@ static void handle_dev_input(EventListener *listener, uint32_t events)
             red_printf("oom current %u pipe %u", worker->current_size, worker->display_channel ?
                        worker->display_channel->base.pipe_size : 0);
             red_free_some(worker);
+            worker->qxl->st->qif->flush_resources(worker->qxl);
         }
         clear_bit(RED_WORKER_PENDING_OOM, worker->pending);
         break;
commit 2f76d8e97482724543d1ce2e22339a4fd89e5480
Author: Alexander Larsson <alexl at redhat.com>
Date:   Thu Sep 9 18:56:44 2010 +0200

    Release more drawables on OOM
    
    We've changed how resources are released so they are now being
    freed continuosly, rather than on OOM, since we want to free as early
    possible to avoid fragmentation. So, OOM situations should be a bit
    less common now and signify a real memory shortage, so we should try
    to free up more resources.

diff --git a/server/red_worker.c b/server/red_worker.c
index f4e6f7c..eb56aa4 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -4408,7 +4408,7 @@ static int red_process_commands(RedWorker *worker, uint32_t max_pipe_size, int *
     return n;
 }
 
-#define RED_RELEASE_BUNCH_SIZE 5
+#define RED_RELEASE_BUNCH_SIZE 64
 
 static void red_free_some(RedWorker *worker)
 {


More information about the Spice-commits mailing list