From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=39089 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OqixN-0005iT-9j for qemu-devel@nongnu.org; Wed, 01 Sep 2010 04:46:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OqixM-0007j6-6e for qemu-devel@nongnu.org; Wed, 01 Sep 2010 04:46:09 -0400 Received: from mx1.redhat.com ([209.132.183.28]:27360) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OqixL-0007j1-VS for qemu-devel@nongnu.org; Wed, 01 Sep 2010 04:46:08 -0400 Message-ID: <4C7E12C1.8000806@redhat.com> Date: Wed, 01 Sep 2010 10:45:53 +0200 From: Gerd Hoffmann MIME-Version: 1.0 Subject: Re: [Qemu-devel] [RfC PATCH] spice: add qxl device References: <1283252029-19375-1-git-send-email-kraxel@redhat.com> <4C7D0026.2060608@codemonkey.ws> In-Reply-To: <4C7D0026.2060608@codemonkey.ws> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu-devel@nongnu.org Hi, >> Signed-off-by: Gerd Hoffmann > > I've taken a quick look and have a few questions. > > Does this work without libspice (I think no)? Correct, it needs libspice. Even in case you'll use qxl with sdl/vnc libspice is needed to do the rendering. > Why does spice need to perform arbitrary gpa -> hva conversions? > Shouldn't everything happen within video ram? Hmm, guess I should write up docs/qxl.txt explaining a few concepts. QXL uses memory slots for addressing. The guest specifies the address of some object (command, command data such as bitmaps, surfaces, ...) using a slot+offset tuple. Memory slots are created by the guest. qxl checks the request. The allowed memory range covers the two pci slots at the moment. If the checks pass qxl informs the spice server about the new slot and the location in qemu's address space so spice server can follow those references when parsing the qxl commands. In a few places qxl needs to look at the commands itself, then it needs to do the memory slot lookup as well of course. qxl_phys2virt does that, maybe I should rename that to qxl_memslot_lookup() or something simliar to make more clear what it actually does. cheers Gerd