From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52861) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UnUjW-0007k7-J7 for qemu-devel@nongnu.org; Fri, 14 Jun 2013 10:12:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UnUjV-0000oW-Gf for qemu-devel@nongnu.org; Fri, 14 Jun 2013 10:12:06 -0400 Received: from mail-qa0-x22f.google.com ([2607:f8b0:400d:c00::22f]:55091) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UnUjV-0000oH-D0 for qemu-devel@nongnu.org; Fri, 14 Jun 2013 10:12:05 -0400 Received: by mail-qa0-f47.google.com with SMTP id i13so166581qae.20 for ; Fri, 14 Jun 2013 07:12:05 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <51BB24B0.9070503@redhat.com> Date: Fri, 14 Jun 2013 10:12:00 -0400 From: Paolo Bonzini MIME-Version: 1.0 References: <1371203313-26490-1-git-send-email-stefanha@redhat.com> <1371203313-26490-9-git-send-email-stefanha@redhat.com> In-Reply-To: <1371203313-26490-9-git-send-email-stefanha@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC 08/13] block: drop bdrv_get_aio_context() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: Kevin Wolf , Anthony Liguori , Ping Fan Liu , qemu-devel@nongnu.org Il 14/06/2013 05:48, Stefan Hajnoczi ha scritto: > Associating a BlockDriverState with a single AioContext is not flexible > enough. Once we make BlockDriverState thread-safe, it will be possible > to call bdrv_*() functions from multiple event loops. I'm afraid that this is trading some pain now (converting qemu_bh_new/qemu_set_fd_handler to aio_bh_new/aio_set_fd_handler) for more pain later (having to make BDS thread-safe). There aren't that many (~40) in block layer code. Making BlockDriverState thread-safe is hard, it is much simpler to run all the BlockDriverState code in the AioContext thread itself. There are some things that cannot (basically monitor commands and other places that are currently using bdrv_drain_all) but they can simply take a "big AioContext lock". Paolo