From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756448AbZDDTSp (ORCPT ); Sat, 4 Apr 2009 15:18:45 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753585AbZDDTSf (ORCPT ); Sat, 4 Apr 2009 15:18:35 -0400 Received: from thunk.org ([69.25.196.29]:33033 "EHLO thunker.thunk.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752430AbZDDTSe (ORCPT ); Sat, 4 Apr 2009 15:18:34 -0400 Date: Sat, 4 Apr 2009 15:18:26 -0400 From: Theodore Tso To: Jens Axboe Cc: Linus Torvalds , Linux Kernel Developers List , Ext4 Developers List Subject: Re: [GIT PULL] Ext3 latency fixes Message-ID: <20090404191826.GE9812@mit.edu> Mail-Followup-To: Theodore Tso , Jens Axboe , Linus Torvalds , Linux Kernel Developers List , Ext4 Developers List References: <1238742067-30814-1-git-send-email-tytso@mit.edu> <20090404135719.GA9812@mit.edu> <20090404151649.GE5178@kernel.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090404151649.GE5178@kernel.dk> User-Agent: Mutt/1.5.18 (2008-05-17) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@mit.edu X-SA-Exim-Scanned: No (on thunker.thunk.org); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Apr 04, 2009 at 05:16:50PM +0200, Jens Axboe wrote: > Big nack on this patch. Ted, this is EXACTLY where I told you we saw big > write regressions (sqlite performance drops by a factor of 4-5). Do a > git log on fs/buffer.c and see the original patch (which does what your > patch does) and the later revert. You mean this revert, right? commit 78f707bfc723552e8309b7c38a8d0cc51012e813 Author: Jens Axboe Date: Tue Feb 17 13:59:08 2009 +0100 block: revert part of 18ce3751ccd488c78d3827e9f6bf54e6322676fb The above commit added WRITE_SYNC and switched various places to using that for committing writes that will be waited upon immediately after submission. However, this causes a performance regression with AS and CFQ for ext3 at least, since sync_dirty_buffer() will submit some writes with WRITE_SYNC while ext3 has sumitted others dependent writes without the sync flag set. This causes excessive anticipation/idling in the IO scheduler because sync and async writes get interleaved, causing a big performance regression for the below test case (which is meant to simulate sqlite like behaviour).... OK, let me test things out first, but note that with the changes that Linus has already accepted, this may not be an issue --- since we've now fixed ext3 to submit those dependent writes with the SYNC flag now. So I'm not sure the performance regression still applies, but I'll test using the test case supplied in the rest of the commit log and get back to you. - Ted