From: Yonit Halperin <yhalperi@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>,
qemu-devel@nongnu.org, Alon Levy <alevy@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 2/2] qxl: add QXL_IO_UPDATE_MEM for guest S3&S4 support
Date: Tue, 21 Jun 2011 09:29:36 +0300 [thread overview]
Message-ID: <4E003A50.8060009@redhat.com> (raw)
In-Reply-To: <20110620163230.GG28412@bow.redhat.com>
On 06/20/2011 07:32 PM, Alon Levy wrote:
> On Mon, Jun 20, 2011 at 05:50:32PM +0200, Gerd Hoffmann wrote:
>> On 06/20/11 17:11, Alon Levy wrote:
>>> On Mon, Jun 20, 2011 at 04:07:59PM +0200, Gerd Hoffmann wrote:
>>>>>> What is the difference to one worker->stop() + worker->start() cycle?
>>>>>>
>>>>>
>>>>> ok, stop+start won't disconnect any clients either. But does stop render all waiting commands?
>>>>> I'll have to look, I don't know if it does.
>>>>
>>>> It does. This is what qemu uses to flush all spice server state to
>>>> device memory on migration.
I don't see that STOP flushes the command rings. We must read and empty
the command rings before going to S3.
>>>>
>>>> What is the reason for deleting all surfaces?
>>>
>>> Making sure all references are dropped to pci memory in devram.
>>
>> Ah, because the spice server keeps a reference to the create command
>> until the surface is destroyed, right?
>
> Actually right, so my correction stands corrected.
>
>>
>> There is is QXL_IO_DESTROY_ALL_SURFACES + worker->destroy_surfaces() ...
>>
>
> Regarding QXL_IO_DESTROY_ALL_SURFACES, it destroys the primary surface too,
> which is a little special, that's another difference - update_mem destroys
> everything except the primary. I know I tried to destroy the primary but it
> didn't work right, don't recall why right now, so I guess I'll have to retry.
>
I guess it is because DrvAssertMode(disable) destroyed the primary
surface in a separate call. Don't think we need to separate the calls
any more (we probably needed it when we thought S3 and resolution
changes will have different paths).
>> The QXL_IO_UPDATE_MEM command does too much special stuff IMHO.
>> I also think we don't need to extend the libspice-server API.
>>
>> We can add a I/O command which renders everything to device memory
>> via stop+start. We can zap all surfaces with the existing command +
> Yes, start+stop work nicely, didn't realize (saw it before, assumed
> it wouldn't be good enough), just need to destroy the surfaces too.
>
>> 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?
> QXL_IO_UPDATE_MEM
> QXL_IO_FLUSH_RELEASE
> ?
>
>>
>> Comments?
>>
>> cheers,
>> Gerd
>>
next prev parent reply other threads:[~2011-06-21 6:29 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-20 11:11 [Qemu-devel] [PATCH 0/2] Suspend (S3) support Alon Levy
2011-06-20 11:11 ` [Qemu-devel] [PATCH 1/2] qxl: interface_get_command: fix reported mode Alon Levy
2011-06-20 11:11 ` [Qemu-devel] [PATCH 2/2] qxl: add QXL_IO_UPDATE_MEM for guest S3&S4 support Alon Levy
2011-06-20 12:13 ` Gerd Hoffmann
2011-06-20 12:57 ` Alon Levy
2011-06-20 12:58 ` Alon Levy
2011-06-20 14:07 ` Gerd Hoffmann
2011-06-20 15:11 ` Alon Levy
2011-06-20 15:48 ` Alon Levy
2011-06-20 15:50 ` Gerd Hoffmann
2011-06-20 16:32 ` Alon Levy
2011-06-20 20:53 ` Alon Levy
2011-06-21 6:29 ` Yonit Halperin [this message]
2011-06-22 9:13 ` Gerd Hoffmann
2011-06-22 9:57 ` Alon Levy
2011-06-26 16:59 ` Yonit Halperin
2011-06-26 17:47 ` Alon Levy
2011-06-27 6:28 ` yhalperi
2011-06-27 8:16 ` Alon Levy
2011-06-27 8:25 ` yhalperi
2011-06-27 9:20 ` Alon Levy
2011-06-29 9:01 ` Gerd Hoffmann
2011-06-29 9:21 ` Alon Levy
2011-06-29 10:25 ` Gerd Hoffmann
2011-06-29 11:38 ` Alon Levy
2011-06-30 10:26 ` Yonit Halperin
2011-06-30 10:46 ` Gerd Hoffmann
2011-06-30 11:41 ` Alon Levy
2011-06-30 12:12 ` Gerd Hoffmann
2011-06-30 12:50 ` Alon Levy
2011-06-30 13:17 ` Gerd Hoffmann
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=4E003A50.8060009@redhat.com \
--to=yhalperi@redhat.com \
--cc=alevy@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.