From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] vnc: shared buffer: skip some optimizations.
Date: Fri, 13 Mar 2009 12:03:39 +0000 [thread overview]
Message-ID: <49BA4B9B.7040208@eu.citrix.com> (raw)
In-Reply-To: <49B9697C.5020607@redhat.com>
Gerd Hoffmann wrote:
> Sending screen updates to the client will be done using the server
> surface + dirty map only, so the guest updating the screen in parallel
> can't cause trouble here.
Could you please explain an example of trouble caused by sich situations?
Given A, B and C three different points in time with A < B < C,
currently what we are doing is:
A) getting the guest dirty map
B) filtering the guest dirty map using memcmp with the server surface
(called old_data in the current code), however the dirty map could be
inconsistent with the framebuffer because was set in A
C) sending updates to the client from the guest surface based on the
dirty map, however the dirty map is inconsistent because it was set in A
and filtered in B
In any case we get the new dirty map next iteration and it will include
all the possible changes that happened after A, possibly already sent to
the client inadvertently in C.
---
with your patch we have:
A) getting the guest dirty map
B) setting the server dirty map using the guest dirty map and memcmp
with the server surface, however the dirty map could be inconsistent
with the guest framebuffer because was set in A
C) sending updates to the client from the server surface
In any case we get the new dirty map next iteration and it will include
all the possible changes that happened after A, possibly already sent to
the client inadvertently in C.
---
If your goal is to remove possible update incosistencies, your patch
certainly removes the one in C, but not the one in B.
If your goal is to send the most updated version of the framebuffer to
the guest ASAP, the current code is better at it.
next prev parent reply other threads:[~2009-03-13 12:09 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-11 14:43 [Qemu-devel] [PATCH] vnc: shared buffer: skip some optimizations Gerd Hoffmann
2009-03-11 15:43 ` Anthony Liguori
2009-03-12 19:58 ` Gerd Hoffmann
2009-03-13 12:03 ` Stefano Stabellini [this message]
2009-03-16 8:35 ` Gerd Hoffmann
2009-03-16 10:27 ` Stefano Stabellini
2009-03-16 11:06 ` Gerd Hoffmann
2009-03-16 11:17 ` Stefano Stabellini
2009-03-12 14:16 ` Stefano Stabellini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=49BA4B9B.7040208@eu.citrix.com \
--to=stefano.stabellini@eu.citrix.com \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).