From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48885) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmYdl-00057n-9N for qemu-devel@nongnu.org; Wed, 14 Oct 2015 22:51:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZmYdk-0005cs-9b for qemu-devel@nongnu.org; Wed, 14 Oct 2015 22:51:37 -0400 Date: Wed, 14 Oct 2015 22:51:27 -0400 (EDT) From: Fam Zheng Message-ID: <1190188629.36893385.1444877487828.JavaMail.zimbra@redhat.com> In-Reply-To: <20151014135145.GB16162@stefanha-thinkpad.redhat.com> References: <1444731375-14716-1-git-send-email-famz@redhat.com> <20151014135145.GB16162@stefanha-thinkpad.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] Revert "blockdev: add note that block_job_cb() must be thread-safe" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: kwolf@redhat.com, pbonzini@redhat.com, qemu-devel@nongnu.org, qemu-block@nongnu.org ----- Original Message ----- > On Tue, Oct 13, 2015 at 06:16:15PM +0800, Fam Zheng wrote: > > This reverts commit 723c5d93c51bdb3adbc238ce90195c0864aa6cd5. > > > > block_job_cb is called by block_job_completed, which is always called in > > a main loop bottom half in existing block jobs. So we don't need to > > worry about thread-safety here. > > This is not correct. Search for block_job_completed() callers. > > For example, block/stream.c has early exit cases that call > block_job_completed() from the coroutine (i.e. dispatched from a > coroutine in another AioContext+IOThread). > > I think you are assuming that all block_job_completed() callers are > called from a function scheduled using block_job_defer_to_main_loop(). No, I'm assuming all block_job_completed() callers are (and they should be) from main thread. Even the early exit cases in stream are so, because they are in the same thread as stream_start, which is main thread. > > Please double-check this. > > Thanks, > Stefan > >