From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:32906) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qasfv-0003bt-Jt for qemu-devel@nongnu.org; Sun, 26 Jun 2011 12:59:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qasfu-0007wR-2W for qemu-devel@nongnu.org; Sun, 26 Jun 2011 12:59:11 -0400 Received: from mx3-phx2.redhat.com ([209.132.183.24]:43304) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qasft-0007wG-Kd for qemu-devel@nongnu.org; Sun, 26 Jun 2011 12:59:09 -0400 Date: Sun, 26 Jun 2011 12:59:06 -0400 (EDT) From: Yonit Halperin Message-ID: <730034918.33031.1309107546747.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> In-Reply-To: <20110622095754.GG14599@bow.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/2] qxl: add QXL_IO_UPDATE_MEM for guest S3&S4 support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alon Levy Cc: qemu-devel@nongnu.org, Gerd Hoffmann Sorry for the late response, wasn't available. I'm afraid that (1) and (2) will indeed wakeup the worker, but will not assure emptying the command ring, as it depends on the client pipe size. ----- Original Message ----- From: "Alon Levy" To: "Gerd Hoffmann" Cc: qemu-devel@nongnu.org, yhalperi@redhat.com Sent: Wednesday, June 22, 2011 11:57:54 AM Subject: Re: [Qemu-devel] [PATCH 2/2] qxl: add QXL_IO_UPDATE_MEM for guest S3&S4 support On Wed, Jun 22, 2011 at 11:13:19AM +0200, Gerd Hoffmann wrote: > Hi, > > >>worker call. We can add a I/O command to ask qxl to push the > >>release queue head to the release ring. > > > >So you suggest to replace QXL_IO_UPDATE_MEM with what, two io commands instead > >of using the val parameter? > > I'd like to (a) avoid updating the libspice-server API if possible > and (b) have one I/O command for each logical step. So going into > S3 could look like this: > > (0) stop putting new commands into the rings > (1) QXL_IO_NOTIFY_CMD > (2) QXL_IO_NOTIFY_CURSOR > qxl calls notify(), to make the worker thread empty the command > rings before it processes the next dispatcher request. > (3) QXl_IO_FLUSH_SURFACES (to be implemented) > qxl calls stop()+start(), spice-server renders all surfaces, > thereby flushing state to device memory. > (4) QXL_IO_DESTROY_ALL_SURFACES > zap surfaces > (5) QXL_IO_FLUSH_RELEASE (to be implemented) > push release queue head into the release ring, so the guest > will see it and can release everything. > > (1)+(2)+(4) exist already. > (3)+(5) can be done without libspice-server changes. > > Looks workable? yeah. Yonit? > > cheers, > Gerd > >