From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:53172) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RxEOJ-0002Tz-VP for qemu-devel@nongnu.org; Tue, 14 Feb 2012 04:09:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RxEOE-0008VW-3P for qemu-devel@nongnu.org; Tue, 14 Feb 2012 04:09:39 -0500 Received: from mx1.redhat.com ([209.132.183.28]:51280) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RxEOD-0008VR-Lb for qemu-devel@nongnu.org; Tue, 14 Feb 2012 04:09:33 -0500 Message-ID: <4F3A2513.4060105@redhat.com> Date: Tue, 14 Feb 2012 11:10:43 +0200 From: Yonit Halperin MIME-Version: 1.0 References: <1329207018-7542-1-git-send-email-yhalperi@redhat.com> <4F3A1CD4.4070005@redhat.com> In-Reply-To: <4F3A1CD4.4070005@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] qxl: make sure primary surface is saved on migration also in compat mode List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: qemu-devel@nongnu.org, spice-devel@freedesktop.org On 02/14/2012 10:35 AM, Gerd Hoffmann wrote: > On 02/14/12 09:10, Yonit Halperin wrote: >> RHBZ #790083 >> >> Signed-off-by: Yonit Halperin > > You are doing two things in one patch: (a) fix the compat mode bug, > which also matches the patch description, and (b) skip vram when it is > unused (in compat mode). > > I'd love to see (b) done in a different way: simply walk all surfaces > and tag them dirty. Will have the same effect for compat mode (no > surfaces used -> nothing tagged dirty) and additionally it will (in > native mode) only migrate over the vram areas which are actually filled > with surfaces. > I can do it, by retrieving the surfaces addresses from the tracked guest commands. However, if we already do it, it would be even better if we just dirty only the areas that are actually modified by the update_area calls. The problem is that (1) spice-server updates surfaces also without request from driver. We can add a cb to the interface or use the async_complete cb with a special flag (2) async_complete cb is called from spice server context. We can add a pipe for update_area dirty events, and make sure that it is handled, before migration moves from the live stage. Yonit. > thanks, > Gerd