From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36886) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XKguW-00033u-Q4 for qemu-devel@nongnu.org; Fri, 22 Aug 2014 00:57:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XKguQ-00086s-Ld for qemu-devel@nongnu.org; Fri, 22 Aug 2014 00:57:12 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50505) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XKguQ-00086o-FX for qemu-devel@nongnu.org; Fri, 22 Aug 2014 00:57:06 -0400 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s7M4v5DQ005281 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 22 Aug 2014 00:57:05 -0400 Date: Fri, 22 Aug 2014 12:57:15 +0800 From: Fam Zheng Message-ID: <20140822045715.GF3410@T430.redhat.com> References: <1408622216-9578-1-git-send-email-famz@redhat.com> <1408622216-9578-10-git-send-email-famz@redhat.com> <53F5E3CF.9020001@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53F5E3CF.9020001@redhat.com> Subject: Re: [Qemu-devel] [RFC PATCH 9/9] scsi: Cancel request asynchronously List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: Kevin Wolf , qemu-devel@nongnu.org, Stefan Hajnoczi On Thu, 08/21 14:19, Paolo Bonzini wrote: > Il 21/08/2014 13:56, Fam Zheng ha scritto: > > We are blocking the whole VM, which means that an irresponsive storage > > backend will hang the whole guest. Let's switch to bdrv_aio_cancel_async > > to improve this. > > Unforuntately, the TMF must only return after the request has been > canceled. I think you need to add a scsi_cancel_io_async function, and > keep all the remaining machinery (also, you need a better commit message > that explains what you are removing and the new invariants). > > Then in virtio-scsi you need to add a list of "dependent" (controlq) > VirtIOSCSIReq to the "main" (requestq) VirtIOSCSIReq, and complete them > all after signaling the completion of the main request. OK, I didn't know that. I'll try again :) Thanks, Fam