From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:55810) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qyhxr-0004fi-Qg for qemu-devel@nongnu.org; Wed, 31 Aug 2011 06:24:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qyhxq-0004k4-Us for qemu-devel@nongnu.org; Wed, 31 Aug 2011 06:24:11 -0400 Received: from mx1.redhat.com ([209.132.183.28]:1095) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qyhxq-0004k0-Nz for qemu-devel@nongnu.org; Wed, 31 Aug 2011 06:24:10 -0400 Message-ID: <4E5E0BB8.4060809@redhat.com> Date: Wed, 31 Aug 2011 12:23:52 +0200 From: Gerd Hoffmann MIME-Version: 1.0 References: <1314778850-13637-1-git-send-email-yhalperi@redhat.com> In-Reply-To: <1314778850-13637-1-git-send-email-yhalperi@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] qxl: send interrupt after migration in case ram->int_pending != 0, RHBZ #732949 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Yonit Halperin Cc: alevy@redhat.com, qemu-devel@nongnu.org, spice-devel@freedesktop.org On 08/31/11 10:20, Yonit Halperin wrote: > if qxl_send_events was called from spice server context, and then > migration had completed before a call to pipe_read, the target > guest qxl driver didn't get the interrupt. In addition, > qxl_send_events ignored further interrupts of the same kind, since > ram->int_pending was set. As a result, the guest driver was stacked > or very slow (when the waiting for the interrupt was with timeout). > - if (!running&& qxl->mode == QXL_MODE_NATIVE) { > + if (running) { > + if (qxl->ram->int_pending) { > + /* > + * if qxl_send_events was called from spice server context before > + * migration ended, qxl_set_irq for these events might not have been called > + */ > + qxl_set_irq(qxl); > + } You can call qxl_set_irq unconditionally, it checks for int_pending anyway. cheers, Gerd