From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56229) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZIF8e-0005He-3F for qemu-devel@nongnu.org; Thu, 23 Jul 2015 07:58:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZIF8b-000571-ET for qemu-devel@nongnu.org; Thu, 23 Jul 2015 07:58:12 -0400 Date: Thu, 23 Jul 2015 13:58:00 +0200 From: Kevin Wolf Message-ID: <20150723115800.GE4314@noname.redhat.com> References: <1437143029-12100-1-git-send-email-stefanha@redhat.com> <1437143029-12100-2-git-send-email-stefanha@redhat.com> <55B0BD55.4010600@de.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <55B0BD55.4010600@de.ibm.com> Subject: Re: [Qemu-devel] [PATCH v2 1/2] raw-posix: warn about BDRV_O_NATIVE_AIO if libaio is unavailable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Christian Borntraeger Cc: qemu-block@nongnu.org, qemu-devel@nongnu.org, Stefan Hajnoczi , Markus Armbruster Am 23.07.2015 um 12:09 hat Christian Borntraeger geschrieben: > Am 17.07.2015 um 16:23 schrieb Stefan Hajnoczi: > > raw-posix.c silently ignores BDRV_O_NATIVE_AIO if libaio is unavailable. > > It is confusing when aio=native performance is identical to aio=threads > > because the binary was accidentally built without libaio. > > > > Print a deprecation warning if -drive aio=native is used with a binary > > that does not support libaio. There are probably users using aio=native > > who would be inconvenienced if QEMU suddenly refused to start their > > guests. In the future this will become an error. > > > > Signed-off-by: Stefan Hajnoczi > > had that myself on a freshly installed system without libaio-devel. > Acked-by: Christian Borntraeger > > > Another thing. Would it make sense to change the default to aio=native somewhen? > From what I can tell this seems to outperform aio=threads in most cases. aio=native requires cache.direct=on, which is not portable to all platforms that qemu supports, and also doesn't work with all filesystems on Linux (most notably tmpfs fails). Also recent benchmarks seem to suggest that currently there is no clear winner between aio=native and aio=threads, it depends too much on the host storage and the workload. When we discussed the default cache mode a while back (with the options cache=writeback and cache=none), it was considered more important to have a default setting that works everywhere and performs good for quick ad-hoc VMs and development/debugging work than one that performs best in enterprise setups that should use a management tool anyway. Kevin