<feed xmlns='http://www.w3.org/2005/Atom'>
<title>spice.git/server, branch 0.6</title>
<subtitle>Spice</subtitle>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice.git/'/>
<entry>
<title>Release 0.6.4</title>
<updated>2011-02-13T15:48:31+00:00</updated>
<author>
<name>Hans de Goede</name>
<email>hdegoede@redhat.com</email>
</author>
<published>2011-02-13T15:46:11+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice.git/commit/?id=5c3f38fb74c6d377feee07d8e51b3770ffca8ea6'/>
<id>5c3f38fb74c6d377feee07d8e51b3770ffca8ea6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>client/server: add missing USE_TUNNEL</title>
<updated>2011-02-10T19:55:07+00:00</updated>
<author>
<name>Alon Levy</name>
<email>alevy@redhat.com</email>
</author>
<published>2011-01-25T14:53:35+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice.git/commit/?id=bc3b9f7e58a8c8c5215eae26fad7b86aed4226e5'/>
<id>bc3b9f7e58a8c8c5215eae26fad7b86aed4226e5</id>
<content type='text'>
disable some code that only makes sense when USE_TUNNEL is defined
in client and server channel security level setting.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
disable some code that only makes sense when USE_TUNNEL is defined
in client and server channel security level setting.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update license header for server/red_parse_qxl.c</title>
<updated>2011-02-10T19:55:07+00:00</updated>
<author>
<name>Hans de Goede</name>
<email>hdegoede@redhat.com</email>
</author>
<published>2011-01-21T14:35:54+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice.git/commit/?id=112436e5752c452719360b2332efcc89cd856ce4'/>
<id>112436e5752c452719360b2332efcc89cd856ce4</id>
<content type='text'>
This one mistakenly had a GPL header rather then an LGPL header.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This one mistakenly had a GPL header rather then an LGPL header.
</pre>
</div>
</content>
</entry>
<entry>
<title>server/red_worker: use 1, not 4 when lz_encoding a top down image</title>
<updated>2011-02-10T19:44:29+00:00</updated>
<author>
<name>Alon Levy</name>
<email>alevy@redhat.com</email>
</author>
<published>2011-01-04T16:11:25+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice.git/commit/?id=b73377aa7df854f37bb00c4ed370271a60d49fda'/>
<id>b73377aa7df854f37bb00c4ed370271a60d49fda</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>server/red_worker: fix worker-&gt;drawable_count</title>
<updated>2010-12-16T15:24:04+00:00</updated>
<author>
<name>Alon Levy</name>
<email>alevy@redhat.com</email>
</author>
<published>2010-12-15T12:43:45+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice.git/commit/?id=367a5c8c3ae81dec30941586482c5168db6658e1'/>
<id>367a5c8c3ae81dec30941586482c5168db6658e1</id>
<content type='text'>
drawable_count was becoming negative. It tracks the number of
items in the worker-&gt;current_list ring. It was decremented correctly,
but incremented only in several cases. The cases it wasn't incremented
where:
 red_current_add_equal found an equivalent drawable
by moving the increment to where the item is added to current_list, in
__current_add_drawable, the accounting remains correct.

This has no affect other then correct accounting, as drawable_count isn't
used for anything.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
drawable_count was becoming negative. It tracks the number of
items in the worker-&gt;current_list ring. It was decremented correctly,
but incremented only in several cases. The cases it wasn't incremented
where:
 red_current_add_equal found an equivalent drawable
by moving the increment to where the item is added to current_list, in
__current_add_drawable, the accounting remains correct.

This has no affect other then correct accounting, as drawable_count isn't
used for anything.
</pre>
</div>
</content>
</entry>
<entry>
<title>Release 0.6.3</title>
<updated>2010-10-18T12:52:43+00:00</updated>
<author>
<name>Hans de Goede</name>
<email>hdegoede@redhat.com</email>
</author>
<published>2010-10-18T12:52:43+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice.git/commit/?id=023d9c0d9118afe64ef17295cd683594413bd36e'/>
<id>023d9c0d9118afe64ef17295cd683594413bd36e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Bump version to 0.6.2</title>
<updated>2010-10-18T09:22:19+00:00</updated>
<author>
<name>Hans de Goede</name>
<email>hdegoede@redhat.com</email>
</author>
<published>2010-10-18T09:22:19+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice.git/commit/?id=bbc079955a078fa80cd5fb6a398c50f031ca383b'/>
<id>bbc079955a078fa80cd5fb6a398c50f031ca383b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>server: remove useless agent send_tokens</title>
<updated>2010-10-16T13:46:50+00:00</updated>
<author>
<name>Hans de Goede</name>
<email>hdegoede@redhat.com</email>
</author>
<published>2010-10-15T07:36:52+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice.git/commit/?id=21f586762f96f9b0c3237b2b7ea21fbc9022435c'/>
<id>21f586762f96f9b0c3237b2b7ea21fbc9022435c</id>
<content type='text'>
We are keeping track of tokens for sending agent data to the client, but
the client send an initial value of ~0, and never gives us new send tokens
so this is all rather useless -&gt; remove it.

Note that it is kept in the migration data struct for compatibility reasons.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We are keeping track of tokens for sending agent data to the client, but
the client send an initial value of ~0, and never gives us new send tokens
so this is all rather useless -&gt; remove it.

Note that it is kept in the migration data struct for compatibility reasons.
</pre>
</div>
</content>
</entry>
<entry>
<title>Call read_from_vdi_port() from vdi_read_buf_release()</title>
<updated>2010-10-15T08:22:37+00:00</updated>
<author>
<name>Hans de Goede</name>
<email>hdegoede@redhat.com</email>
</author>
<published>2010-10-15T07:16:49+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice.git/commit/?id=0b2336cd9c556cec98457e16e09e6c9855d81e82'/>
<id>0b2336cd9c556cec98457e16e09e6c9855d81e82</id>
<content type='text'>
read_from_vdi_port(), called from vdagent_char_device_wakeup() may
fail to consume all data because no buffers are available in the
read_bufs ring. When this happens we would fail to ever read more data
from the agent on the guest as the port is throttled and stays throttled
until we've consumed all data from the current buffer.

This patch re-enables the call to read_from_vdi_port() from
vdi_read_buf_release(), so that we will try the read again when space
becomes available in the read_bufs ring.

Together with another nasty hack in the linux guest virtio_console
driver, where it waits for a write to be acked by the host before
continuing with the next one, this can lead to a linux guest
getting stuck / hang (until the write is read by the spice-server
which never happens becaus of the above issues).

Note that even with this patch, the guest will still gets stuck due to
a bug in watch_update_mask in spice-core in qemu, which causes writing
to the client to never resume once it blocked. A patch for this has been
submitted to qemu.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
read_from_vdi_port(), called from vdagent_char_device_wakeup() may
fail to consume all data because no buffers are available in the
read_bufs ring. When this happens we would fail to ever read more data
from the agent on the guest as the port is throttled and stays throttled
until we've consumed all data from the current buffer.

This patch re-enables the call to read_from_vdi_port() from
vdi_read_buf_release(), so that we will try the read again when space
becomes available in the read_bufs ring.

Together with another nasty hack in the linux guest virtio_console
driver, where it waits for a write to be acked by the host before
continuing with the next one, this can lead to a linux guest
getting stuck / hang (until the write is read by the spice-server
which never happens becaus of the above issues).

Note that even with this patch, the guest will still gets stuck due to
a bug in watch_update_mask in spice-core in qemu, which causes writing
to the client to never resume once it blocked. A patch for this has been
submitted to qemu.
</pre>
</div>
</content>
</entry>
<entry>
<title>server: always call read_from_vdi_port() in a while loop</title>
<updated>2010-10-15T08:22:37+00:00</updated>
<author>
<name>Hans de Goede</name>
<email>hdegoede@redhat.com</email>
</author>
<published>2010-10-15T07:08:10+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/fidencio/public_git/spice.git/commit/?id=a52324525d5707365c4b6758e5d5b08f21b0ac31'/>
<id>a52324525d5707365c4b6758e5d5b08f21b0ac31</id>
<content type='text'>
read_from_vdi_port() MUST always be called in a while loop until it returns 0.

This is needed because it can cause new data available events and its
recursion protection causes those to get lost. Calling it until it returns 0
ensures that all data has been consumed.

Example scenario where we can fail to read the available data otherwise:
- server/reds.c: vdagent_char_device_wakeup get called
  by hw/spice-vmc.c because data has arrived from the guest,
- hw/spice-vmc.c: vmc_read get calls
- If the vmc_read call depletes the current buffer it calls
  virtio_serial_throttle_port(&amp;svc-&gt;port, false)
- This causes vmc_have_data to get called, which if in the
  mean time another buffer has arrived causes
  vdagent_char_device_wakeup to gets called again
  (so recursively)
- vdagent_char_device_wakeup is protected against recursive
  calling and ignores the second call (a nasty hack)
- if no other data arrives, the arrived data will not get read
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
read_from_vdi_port() MUST always be called in a while loop until it returns 0.

This is needed because it can cause new data available events and its
recursion protection causes those to get lost. Calling it until it returns 0
ensures that all data has been consumed.

Example scenario where we can fail to read the available data otherwise:
- server/reds.c: vdagent_char_device_wakeup get called
  by hw/spice-vmc.c because data has arrived from the guest,
- hw/spice-vmc.c: vmc_read get calls
- If the vmc_read call depletes the current buffer it calls
  virtio_serial_throttle_port(&amp;svc-&gt;port, false)
- This causes vmc_have_data to get called, which if in the
  mean time another buffer has arrived causes
  vdagent_char_device_wakeup to gets called again
  (so recursively)
- vdagent_char_device_wakeup is protected against recursive
  calling and ignores the second call (a nasty hack)
- if no other data arrives, the arrived data will not get read
</pre>
</div>
</content>
</entry>
</feed>
