From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755988Ab1K1Cja (ORCPT ); Sun, 27 Nov 2011 21:39:30 -0500 Received: from mga03.intel.com ([143.182.124.21]:26365 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753297Ab1K1Cj2 (ORCPT ); Sun, 27 Nov 2011 21:39:28 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.69,580,1315206000"; d="scan'208";a="79625681" Date: Mon, 28 Nov 2011 10:39:22 +0800 From: Wu Fengguang To: Dave Chinner Cc: Jan Kara , Christoph Hellwig , Andrew Morton , Linux Memory Management List , "linux-fsdevel@vger.kernel.org" , Ankit Jain , Christian Ehrhardt , Rik van Riel , Nikanth Karthikesan , LKML , Andi Kleen Subject: Re: [PATCH 2/8] readahead: make default readahead size a kernel parameter Message-ID: <20111128023922.GA2141@localhost> References: <20111121091819.394895091@intel.com> <20111121093846.251104145@intel.com> <20111121100137.GC5084@infradead.org> <20111121113540.GB8895@localhost> <20111124222822.GG29519@quack.suse.cz> <20111125003633.GP2386@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20111125003633.GP2386@dastard> User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Nov 25, 2011 at 08:36:33AM +0800, Dave Chinner wrote: > On Thu, Nov 24, 2011 at 11:28:22PM +0100, Jan Kara wrote: > > On Mon 21-11-11 19:35:40, Wu Fengguang wrote: > > > On Mon, Nov 21, 2011 at 06:01:37PM +0800, Christoph Hellwig wrote: > > > > On Mon, Nov 21, 2011 at 05:18:21PM +0800, Wu Fengguang wrote: > > > > > From: Nikanth Karthikesan > > > > > > > > > > Add new kernel parameter "readahead=", which allows user to override > > > > > the static VM_MAX_READAHEAD=128kb. > > > > > > > > Is a boot-time paramter really such a good idea? I would at least > > > > > > It's most convenient to set at boot time, because the default size > > > will be used to initialize all the block devices. > > > > > > > make it a sysctl so that it's run-time controllable, including > > > > beeing able to set it from initscripts. > > > > > > Once boot up, it's more natural to set the size one by one, for > > > example > > > > > > blockdev --setra 1024 /dev/sda2 > > > or > > > echo 512 > /sys/block/sda/queue/read_ahead_kb > > > > > > And you still have the chance to modify the global default, but the > > > change will only be inherited by newly created devices thereafter: > > > > > > echo 512 > /sys/devices/virtual/bdi/default/read_ahead_kb > > > > > > The above command is very suitable for use in initscripts. However > > > there are no natural way to do sysctl as there is no such a global > > > value. > > Well, you can always have an udev rule to set read_ahead_kb to whatever > > you want. In some respect that looks like a nicer solution to me... > > And one that has already been in use for exactly this purpose for > years. Indeed, it's far more flexible because you can give different > types of devices different default readahead settings quite easily, > and it you can set different defaults for just about any tunable > parameter (e.g. readahead, ctq depth, max IO sizes, etc) in the same > way. I'm interested in this usage, too. Would you share some of your rules? > Hence I don't think we should treat default readahead any > differently from any other configurable storage parameter - we've > already got places to change the per-device defaults to something > sensible at boot/discovery time.... OK, I'll drop this patch. Thanks, Fengguang