Blame SOURCES/kvm-ui-correctly-reset-framebuffer-update-state-after-pr.patch

4a2fec
From 0165d714e9150595c6bceb0d538018d486d7c519 Mon Sep 17 00:00:00 2001
4a2fec
From: "Daniel P. Berrange" <berrange@redhat.com>
4a2fec
Date: Mon, 5 Feb 2018 11:10:04 +0100
4a2fec
Subject: [PATCH 10/20] ui: correctly reset framebuffer update state after
4a2fec
 processing dirty regions
4a2fec
MIME-Version: 1.0
4a2fec
Content-Type: text/plain; charset=UTF-8
4a2fec
Content-Transfer-Encoding: 8bit
4a2fec
4a2fec
RH-Author: Daniel P. Berrange <berrange@redhat.com>
4a2fec
Message-id: <20180205111012.6210-10-berrange@redhat.com>
4a2fec
Patchwork-id: 78885
4a2fec
O-Subject: [RHV-7.5 qemu-kvm-rhev PATCH v2 09/17] ui: correctly reset framebuffer update state after processing dirty regions
4a2fec
Bugzilla: 1527404
4a2fec
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
4a2fec
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
4a2fec
RH-Acked-by: Thomas Huth <thuth@redhat.com>
4a2fec
4a2fec
From: "Daniel P. Berrange" <berrange@redhat.com>
4a2fec
4a2fec
According to the RFB protocol, a client sends one or more framebuffer update
4a2fec
requests to the server. The server can reply with a single framebuffer update
4a2fec
response, that covers all previously received requests. Once the client has
4a2fec
read this update from the server, it may send further framebuffer update
4a2fec
requests to monitor future changes. The client is free to delay sending the
4a2fec
framebuffer update request if it needs to throttle the amount of data it is
4a2fec
reading from the server.
4a2fec
4a2fec
The QEMU VNC server, however, has never correctly handled the framebuffer
4a2fec
update requests. Once QEMU has received an update request, it will continue to
4a2fec
send client updates forever, even if the client hasn't asked for further
4a2fec
updates. This prevents the client from throttling back data it gets from the
4a2fec
server. This change fixes the flawed logic such that after a set of updates are
4a2fec
sent out, QEMU waits for a further update request before sending more data.
4a2fec
4a2fec
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
4a2fec
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
4a2fec
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
4a2fec
Message-id: 20171218191228.31018-8-berrange@redhat.com
4a2fec
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
4a2fec
(cherry picked from commit 728a7ac95484a7ba5e624ccbac4c1326571576b0)
4a2fec
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
4a2fec
---
4a2fec
 ui/vnc.c | 2 +-
4a2fec
 1 file changed, 1 insertion(+), 1 deletion(-)
4a2fec
4a2fec
diff --git a/ui/vnc.c b/ui/vnc.c
4a2fec
index 2320421..3707b87 100644
4a2fec
--- a/ui/vnc.c
4a2fec
+++ b/ui/vnc.c
4a2fec
@@ -1031,7 +1031,7 @@ static int vnc_update_client(VncState *vs, int has_dirty)
4a2fec
     }
4a2fec
 
4a2fec
     vnc_job_push(job);
4a2fec
-    vs->update = VNC_STATE_UPDATE_INCREMENTAL;
4a2fec
+    vs->update = VNC_STATE_UPDATE_NONE;
4a2fec
     vs->has_dirty = 0;
4a2fec
     return n;
4a2fec
 }
4a2fec
-- 
4a2fec
1.8.3.1
4a2fec