From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Mason Subject: [PATCH 0/2] Support for atomic IOs Date: Fri, 1 Nov 2013 17:27:04 -0400 Message-ID: <20131101212704.10239.73920@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8BIT To: Linux FS Devel , Jens Axboe Return-path: Received: from dkim1.fusionio.com ([66.114.96.53]:53739 "EHLO dkim1.fusionio.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752603Ab3KAV1M convert rfc822-to-8bit (ORCPT ); Fri, 1 Nov 2013 17:27:12 -0400 Received: from mx1.fusionio.com (unknown [10.101.1.160]) by dkim1.fusionio.com (Postfix) with ESMTP id 3FB627C0419 for ; Fri, 1 Nov 2013 15:27:11 -0600 (MDT) Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Hi everyone, I'm still testing this (especially to look for unrelated regressions in MD and DM), but wanted to send it out for comments. These two patches implement support for atomic IOs down to the hardware. The basic idea is that we give a list of bios to the storage and even if they are discontiguous the hardware promises to complete them as a single atomic unit. The first user for this is O_DIRECT, especially for mysql based databases. O_ATOMIC | O_DIRECT allows mysql and friends to disable double buffering. This cuts their write IO in half, making them roughly 2x more flash friendly. The patches are on top of Jens' current blk-mq/core tree. Jens also has chaining patches from Kent, but he is chaining bios likely to be sent to separate devices, while I'm chaining bios that must (currently) be sent to the same device as a group. As far as I can tell, there isn't much overlap in our targets or methods, but I'd like to eventually merge the ideas together. -chris