From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:32957) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VwOra-0006Ym-9e for qemu-devel@nongnu.org; Thu, 26 Dec 2013 23:17:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VwOrR-00062c-C9 for qemu-devel@nongnu.org; Thu, 26 Dec 2013 23:17:30 -0500 Received: from e23smtp04.au.ibm.com ([202.81.31.146]:54679) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VwOrQ-00062L-K4 for qemu-devel@nongnu.org; Thu, 26 Dec 2013 23:17:21 -0500 Received: from /spool/local by e23smtp04.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 27 Dec 2013 14:17:16 +1000 Received: from d23relay03.au.ibm.com (d23relay03.au.ibm.com [9.190.235.21]) by d23dlp03.au.ibm.com (Postfix) with ESMTP id 2A2793578050 for ; Fri, 27 Dec 2013 15:17:12 +1100 (EST) Received: from d23av03.au.ibm.com (d23av03.au.ibm.com [9.190.234.97]) by d23relay03.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id rBR4Gx0f8847734 for ; Fri, 27 Dec 2013 15:16:59 +1100 Received: from d23av03.au.ibm.com (localhost [127.0.0.1]) by d23av03.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id rBR4HAUi028714 for ; Fri, 27 Dec 2013 15:17:11 +1100 Message-ID: <52BCFF4C.5010303@linux.vnet.ibm.com> Date: Fri, 27 Dec 2013 12:17:16 +0800 From: Wenchao Xia MIME-Version: 1.0 References: <1386940979-3824-1-git-send-email-kwolf@redhat.com> <1386940979-3824-20-git-send-email-kwolf@redhat.com> In-Reply-To: <1386940979-3824-20-git-send-email-kwolf@redhat.com> Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH v2 19/24] block: Allow wait_serialising_requests() at any point List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf , qemu-devel@nongnu.org Cc: pbonzini@redhat.com, pl@kamp.de, stefanha@redhat.com ÓÚ 2013/12/13 21:22, Kevin Wolf дµÀ: > We can only have a single wait_serialising_requests() call per request > because otherwise we can run into deadlocks where requests are waiting > for each other. do you mean: mark_request_serialising(req) ... wait_serialising_requests(req); ... wait_serialising_requests(req); will have deadlock? I thought it is already resolved by patch 15? Maybe here is another deadlock reason? The same is true when wait_serialising_requests() is not > at the very beginning of a request, so that other requests can be issued > between the start of the tracking and wait_serialising_requests().