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

[Xen-changelog] [qemu-xen master] ui: correctly reset framebuffer update state after processing dirty regions



commit 2e6571e6713d7d2b6156c99c9067cc1aa8008098
Author:     Daniel P. Berrange <berrange@xxxxxxxxxx>
AuthorDate: Mon Dec 18 19:12:22 2017 +0000
Commit:     Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx>
CommitDate: Mon Feb 12 18:34:04 2018 -0600

    ui: correctly reset framebuffer update state after processing dirty regions
    
    According to the RFB protocol, a client sends one or more framebuffer update
    requests to the server. The server can reply with a single framebuffer 
update
    response, that covers all previously received requests. Once the client has
    read this update from the server, it may send further framebuffer update
    requests to monitor future changes. The client is free to delay sending the
    framebuffer update request if it needs to throttle the amount of data it is
    reading from the server.
    
    The QEMU VNC server, however, has never correctly handled the framebuffer
    update requests. Once QEMU has received an update request, it will continue 
to
    send client updates forever, even if the client hasn't asked for further
    updates. This prevents the client from throttling back data it gets from the
    server. This change fixes the flawed logic such that after a set of updates 
are
    sent out, QEMU waits for a further update request before sending more data.
    
    Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx>
    Reviewed-by: Darren Kenny <darren.kenny@xxxxxxxxxx>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx>
    Message-id: 20171218191228.31018-8-berrange@xxxxxxxxxx
    Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx>
    (cherry picked from commit 728a7ac95484a7ba5e624ccbac4c1326571576b0)
    Signed-off-by: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx>
---
 ui/vnc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ui/vnc.c b/ui/vnc.c
index d3b04f1..51fbf04 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -1031,7 +1031,7 @@ static int vnc_update_client(VncState *vs, int has_dirty)
     }
 
     vnc_job_push(job);
-    vs->update = VNC_STATE_UPDATE_INCREMENTAL;
+    vs->update = VNC_STATE_UPDATE_NONE;
     vs->has_dirty = 0;
     return n;
 }
--
generated by git-patchbot for /home/xen/git/qemu-xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.