qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Dor Laor <dlaor@redhat.com>
To: Alexander Graf <agraf@suse.de>
Cc: Yaniv Kamay <ykamay@redhat.com>, Izik Eidus <ieidus@redhat.com>,
	qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Spice project is now open
Date: Sat, 12 Dec 2009 00:33:13 +0200	[thread overview]
Message-ID: <4B22C8A9.8080602@redhat.com> (raw)
In-Reply-To: <8BF07900-1F21-4E1C-AFC7-FF9CC47525A3@suse.de>

On 12/12/2009 12:08 AM, Alexander Graf wrote:
>
> On 11.12.2009, at 22:13, Izik Eidus wrote:
>
>> On Fri, 11 Dec 2009 14:46:55 -0600
>> Anthony Liguori<anthony@codemonkey.ws>  wrote:
>>
>>> Izik Eidus wrote:
>>>> I personaly dont like mjpeg, and yes in the end of the day you can
>>>> add the video streaming into vnc, but what is the point here?
>>>>
>>>
>>> What I'm trying to understand is, what can we do with Spice that we
>>> couldn't possibly do with vnc.  That means understanding each feature
>>> and then figuring out if there's a vnc analog.
>>>
>>> If there are compellingly unique features to Spice that can't be
>>> duplicated in vnc, then it's a no brainer.  If you can do most things
>>> in vnc but it would be hackish whereas Spice makes it all elegant,
>>> then provided we can merge Spice without a huge amount of pain, then
>>> it's a net win.
>>>
>>> However, if we need to make a few changes to vnc in order to get the
>>> same performance as Spice, then it's not quite as clear that it's
>>> what we should be using.
>>>
>>> We're talking about a major change here.  There is a ton of
>>> management software that assumes vnc today.  Even though there are
>>> Spice clients out there, there are embedded vnc clients in certain
>>> tools today along with java applets.
>>>
>>> That's not to say we shouldn't embrace Spice, we just have to make
>>> sure we have a good reason to.
>>
>> Ok, I understand your concerns.
>>
>> But even though that spice and vnc achive in the end of the day the
>> same thing - they both allow remote rendering, they have fendumental
>> diffrent architacture.
>>
>> Spice server work with a ring to the guest, it was build from day one
>> to work like that, In addition it was built from day one so that the
>> server will render only what it must to render (to allow much higher
>> virtualization denticity).
>
> The ring is from qemu<->  guest, right? I mean, qemu<->  client would be a TCP transport anyways, so the ring argument is void.

Right, the ring is like any pv device. The descriptor is passed from the 
ring through the 'graphic VDI interface' to the spice server that is 
linked together with qemu.
Izik or the code can give better answer.

In fact, the code + lots of documentation exist. Indeed, this is just an 
early bird and it will change into qemu/kvm git repo for easier access. 
Once spice features are better understood, a merge plan should be 
decided and bits should start their journey into qemu.

>
>> Just to make clear how much spice is diffrence from VNC is by the fact
>> that only the library itself (not including the drivers) have 128,277
>> lines of code inside it. (In my old qemu repo i see almost 600,000
>> lines for qemu) so this should give better prespective on how much
>> spice is diffrent from vnc.
>>
>> So ofcurse in theory you can take all this 128,000 lines and push them
>> into qemu-vnc.c ?, but you got to remember that spice is not just
>> specific qemu thing, Spice should be used to work on physical machines
>> too, just cutting all this lines of code from spice and throw it into
>> qemu-vnc.c will be meaning a fork of spice inside qemu....
>
> I definitely understand your point of having a single protocol. The good news is that your physical machine stuff isn't released yet (AFAIK), so luckily there's still time to change parts of the protocol :-).
>
>> It isnt just the rings and the rendering style that make spice
>> diffrence, it is the channels it have for each compoment, it is the
>> multiple drawing surfaces, and so on...
>
> These should be fairly easy to implement in VNC too. In fact, I remember a project implementing off-screen drawing in VNC using a larger region of the screen than what was visible and then copyrect them in.
>
>> This why the VDI interfaces were made, it was made so who ever used
>> VNC, can still use it, whoever want to use SPICE can still use spice,
>>
>> By merging SPICE you just merge VDI interfaces, not the library
>> itself, it is so self contained thanks to the VDI interfaces, that it
>> almost dont touch anything inside qemu, I belive this was one of the
>> best aurgoments when Avi pushed kvm into the kernel - the fact that it
>> was a module that can be easyly removed if ppl dont want to use it.
>>
>>
>>>
>>>> We acctuly want to kick away that video streaming, and move into the
>>>> DirectX and X video extentions video support (that will be made
>>>> using the qxl driver) - will give much better performence.
>>>>
>>>
>>> Okay, I suspect we're in agreement here then.
>>
>> Thanks God ! ;-)
>>
>>
>>>
>>>>> By the time we get to video memory, the display server has already
>>>>> straightened out what portions of the screen are visible and what
>>>>> aren't.  It will not render a hidden window and then render
>>>>> another window on top of it.
>>>>>
>>>>
>>>> I dont understand, if you have applciation that draw Rectangle, and
>>>> just another Rectanlge on top of it, wont it hide it?, doesnt we
>>>> want just to send the newest Rectangle?
>>>>
>>>
>>> If you're using something like gdk, the toolkit double buffers
>>> windows by default and does a single flip on expose.  So this sort of
>>> thing never makes it way to the X server.  But the other point is, if
>>> you draw a rectangle with gdk, all the X server ever sees is the
>>> drawing of an image.
>>
>> Spice work on the driver primitives it doesnt know what is GDK, if the
>> X driver will draw rectangle and then another rectangle, VNC will have
>> to draw it twice, spice not.
>
> Well, in fact VNC would wait for the refresh timer of the VGA framebuffer dirty thing and only send a single update too.
>
> But Anthony's point was that rectangle drawing isn't used anymore. Instead gtk/qt just draw it themselves and tell the X driver "here's an image".
>
> Alex
>

  reply	other threads:[~2009-12-11 22:33 UTC|newest]

Thread overview: 128+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1072764996.1548651260538641101.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-12-11 13:45 ` [Qemu-devel] Spice project is now open Yaniv Kamay
2009-12-11 14:03   ` Jun Koi
2009-12-11 14:17     ` Yaniv Kamay
2009-12-11 14:09   ` Alexander Graf
2009-12-11 14:28     ` Jun Koi
2009-12-11 16:34       ` Anthony Liguori
2009-12-11 16:52         ` Chris Wright
2009-12-11 17:01           ` Anthony Liguori
2009-12-11 17:31             ` Chris Wright
2009-12-11 17:02         ` Yaniv Kamay
2009-12-11 17:16           ` Anthony Liguori
2009-12-11 17:21             ` Alexander Graf
2009-12-11 17:28               ` Anthony Liguori
2009-12-11 17:18           ` Alexander Graf
2009-12-11 18:49           ` Glauber Costa
2009-12-11 15:57   ` Anthony Liguori
2009-12-11 16:47     ` Yaniv Kamay
2009-12-11 16:57       ` Chris Wright
2009-12-11 17:00       ` Anthony Liguori
2009-12-11 17:38         ` Johannes Schindelin
2009-12-11 18:48     ` Izik Eidus
2009-12-11 18:57       ` Ben Taylor
2009-12-11 19:06         ` Izik Eidus
2009-12-11 19:09         ` Glauber Costa
2009-12-11 19:00       ` Izik Eidus
2009-12-11 19:06         ` Anthony Liguori
2009-12-11 19:22           ` Izik Eidus
2009-12-11 19:37             ` Glauber Costa
2009-12-11 19:07         ` Glauber Costa
2009-12-11 19:24           ` Izik Eidus
2010-01-23 23:39           ` Izik Eidus
2009-12-11 19:03       ` malc
2009-12-11 19:10         ` Izik Eidus
2009-12-11 19:24           ` malc
2009-12-11 19:33             ` Izik Eidus
2009-12-11 19:53               ` malc
2009-12-11 20:26                 ` Izik Eidus
2009-12-13 11:11                   ` Izik Eidus
2009-12-11 19:04       ` Anthony Liguori
2009-12-11 19:15         ` Glauber Costa
2009-12-11 19:25           ` Izik Eidus
2009-12-11 19:42           ` Chris Wright
2009-12-11 19:21         ` Izik Eidus
2009-12-11 19:30           ` Anthony Liguori
2009-12-11 19:39             ` Izik Eidus
2009-12-11 19:51               ` Anthony Liguori
2009-12-11 20:21                 ` Izik Eidus
2009-12-11 20:46                   ` Anthony Liguori
2009-12-11 21:13                     ` Izik Eidus
2009-12-11 21:54                       ` Anthony Liguori
2009-12-11 22:34                         ` Izik Eidus
2009-12-12  0:54                         ` [Qemu-devel] " Paolo Bonzini
2009-12-12  3:34                           ` Anthony Liguori
2009-12-12  9:14                             ` Paolo Bonzini
2009-12-12 15:11                               ` Anthony Liguori
2009-12-12 16:09                                 ` Avi Kivity
2009-12-12 17:28                                   ` Anthony Liguori
2009-12-13 10:18                                     ` Avi Kivity
2009-12-11 22:08                       ` [Qemu-devel] " Alexander Graf
2009-12-11 22:33                         ` Dor Laor [this message]
2009-12-11 22:46                         ` Izik Eidus
2009-12-11 23:54                           ` Alexander Graf
2009-12-12  0:14                             ` Izik Eidus
2009-12-12  0:27                               ` Alexander Graf
2009-12-12  0:53                                 ` Izik Eidus
2009-12-12  1:08                                   ` Alexander Graf
2009-12-12  1:33                                     ` Izik Eidus
2009-12-11 23:58                           ` [Qemu-devel] X support for QXL and SPICE Soeren Sandmann
2009-12-12  0:05                             ` [Qemu-devel] " Alexander Graf
2009-12-12  0:31                               ` Izik Eidus
2009-12-12  0:37                                 ` Alexander Graf
2009-12-12  0:08                             ` Izik Eidus
2009-12-12  3:31                             ` [Qemu-devel] " Anthony Liguori
2009-12-12  3:52                               ` Izik Eidus
2009-12-12 15:13                                 ` Anthony Liguori
2009-12-12 15:29                                   ` Izik Eidus
2009-12-12 15:43                                     ` Alexander Graf
2009-12-12 16:01                                       ` Izik Eidus
2009-12-12  6:22                               ` Dave Airlie
2009-12-12 16:39                               ` Soeren Sandmann
2009-12-14 14:07                             ` Gerd Hoffmann
2009-12-14 13:56                         ` [Qemu-devel] Spice project is now open Gerd Hoffmann
2009-12-14 14:33                           ` Anthony Liguori
2009-12-11 20:32                 ` Izik Eidus
2009-12-11 20:48                   ` Anthony Liguori
2009-12-11 21:31                     ` Izik Eidus
2009-12-11 21:58                       ` Anthony Liguori
2009-12-11 22:55                         ` Chris Wright
2009-12-12  3:27                           ` Anthony Liguori
2009-12-12  1:03                         ` [Qemu-devel] " Paolo Bonzini
2009-12-12  3:44                           ` Anthony Liguori
2009-12-12 14:44                             ` Andrea Arcangeli
2009-12-12 15:03                               ` Anthony Liguori
2009-12-12 16:06                                 ` Andrea Arcangeli
2009-12-12 17:40                                   ` Anthony Liguori
2009-12-12 17:48                                     ` Izik Eidus
2009-12-12 19:26                                       ` Anthony Liguori
2009-12-12 19:48                                         ` Izik Eidus
2009-12-12 22:41                                           ` Dor Laor
2009-12-12 22:35                                     ` Dor Laor
2009-12-12 23:46                                       ` Anthony Liguori
2009-12-13  0:23                                         ` Daniel P. Berrange
2009-12-13 10:46                                         ` Avi Kivity
2009-12-14 14:42                                           ` Anthony Liguori
2009-12-14 14:53                                             ` Avi Kivity
2009-12-14 15:17                                               ` Daniel P. Berrange
2009-12-14 15:21                                                 ` Avi Kivity
2009-12-14 15:46                                                   ` Anthony Liguori
2009-12-14 15:10                                             ` Daniel P. Berrange
2009-12-14 15:50                                               ` Anthony Liguori
2009-12-14 16:00                                               ` Avi Kivity
2009-12-14 16:15                                                 ` Anthony Liguori
2009-12-14 17:52                                               ` Mark McLoughlin
2009-12-13 14:56                                         ` Gildas Le Nadan
2009-12-14 14:40                                       ` Gerd Hoffmann
2009-12-14 14:50                                         ` Anthony Liguori
2009-12-12 23:43                                     ` Andrea Arcangeli
2009-12-12 23:52                                       ` Anthony Liguori
2009-12-13  0:04                                         ` Andrea Arcangeli
2009-12-13  0:18                                           ` Anthony Liguori
2009-12-13  9:10                                             ` Izik Eidus
2009-12-15 13:25                                         ` Soeren Sandmann
2009-12-11 19:25         ` [Qemu-devel] " Mark McLoughlin
2009-12-11 19:38           ` Anthony Liguori
2009-12-11 19:45             ` Mark McLoughlin
2009-12-11 19:53               ` Anthony Liguori
     [not found] <1743803977.1552241260541384099.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-12-11 14:23 ` Yaniv Kamay
     [not found] <232864779.1569611260551125791.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-12-11 17:07 ` Yaniv Kamay

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=4B22C8A9.8080602@redhat.com \
    --to=dlaor@redhat.com \
    --cc=agraf@suse.de \
    --cc=ieidus@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=ykamay@redhat.com \
    /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).