From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=54908 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1P8vnP-0000WI-30 for Qemu-devel@nongnu.org; Thu, 21 Oct 2010 10:07:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1P8vnN-0001pS-UF for Qemu-devel@nongnu.org; Thu, 21 Oct 2010 10:07:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:32372) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1P8vnN-0001pE-O5 for Qemu-devel@nongnu.org; Thu, 21 Oct 2010 10:07:05 -0400 Message-ID: <4CC04920.8040902@redhat.com> Date: Thu, 21 Oct 2010 16:07:28 +0200 From: Kevin Wolf MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] bdrv_flush for qemu block drivers nbd, rbd and sheepdog List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Christian Brunner , Laurent Vivier , MORITA Kazutaka Cc: Qemu-devel@nongnu.org Hi all, I'm currently looking into adding a return value to qemu's bdrv_flush function and I noticed that your block drivers (nbd, rbd and sheepdog) don't implement bdrv_flush at all. bdrv_flush is going to return -ENOTSUP for any block driver not implementing this, effectively breaking these three drivers for anything but cache=unsafe. Is there a specific reason why your drivers don't implement this? I think I remember that one of the drivers always provides cache=writethough semantics. It would be okay to silently "upgrade" to cache=writethrough, so in this case I'd just need to add an empty bdrv_flush implementation. Otherwise, we really cannot allow any option except cache=unsafe because that's the semantics provided by the driver. In any case, I think it would be a good idea to implement a real bdrv_flush function to allow the write-back cache modes cache=off and cache=writeback in order to improve performance over writethrough. Is this possible with your protocols, or can the protocol be changed to consider this? Any hints on how to proceed? Kevin