From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34865) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YH79u-0004Kq-Rt for qemu-devel@nongnu.org; Fri, 30 Jan 2015 03:42:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YH79l-0002PS-Uy for qemu-devel@nongnu.org; Fri, 30 Jan 2015 03:42:34 -0500 Received: from mailhub.sw.ru ([195.214.232.25]:45336 helo=relay.sw.ru) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YH79l-0002Oq-Ij for qemu-devel@nongnu.org; Fri, 30 Jan 2015 03:42:25 -0500 From: "Denis V. Lunev" Date: Fri, 30 Jan 2015 11:42:10 +0300 Message-Id: <1422607337-25335-1-git-send-email-den@openvz.org> Subject: [Qemu-devel] [PATCH v6 0/7] eliminate data write in bdrv_write_zeroes on Linux in raw-posix.c List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Fam Zheng , Peter Lieven , qemu-devel@nongnu.org, Max Reitz , Stefan Hajnoczi , "Denis V. Lunev" I have performed several tests with non-aligned fallocate calls and in all cases (with non-aligned fallocates) Linux performs fine, i.e. areas are zeroed correctly. Checks were made on Linux 3.16.0-28-generic #38-Ubuntu SMP This should seriously increase performance of bdrv_write_zeroes Changes from v5: - changed order between patches 5/6 - check has_fallocate in FALLOC_FL_PUNCH_HOLE branch of the code - minor comment tweaks as pointed out by Max Reitz Changes from v4: - comments to patches are improved by Max Reitz suggestions - replaced 'return ret' with 'return -ENOTSUP' handle_aiocb_write_zeroes The idea is that we can reach that point only if original ret was equal to -ENOTSUP - added has_fallocate flag to indicate that fallocate is working for given BDS - checked file length with bdrv_getlength Changes from v3: - dropped original patch 1, equivalent stuff was merged already - reordered patches as suggested by Fam - fixes spelling errors as suggested by Fam - fixed not initialized value in handle_aiocb_write_zeroes - fixed wrong error processing from do_fallocate(FALLOC_FL_ZERO_RANGE) Changes from v2: - added Peter Lieven to CC - added CONFIG_FALLOCATE check to call do_fallocate in patch 7 - dropped patch 1 as NACK-ed - added processing of very large data areas in bdrv_co_write_zeroes (new patch 1) - set bl.max_write_zeroes to INT_MAX in raw-posix.c for regular files (new patch 8) Signed-off-by: Denis V. Lunev CC: Max Reitz CC: Kevin Wolf CC: Stefan Hajnoczi CC: Peter Lieven CC: Fam Zheng