Re: [PATCH 2/8] readahead: make default readahead size a kernelparameter

From: Dave Chinner
Date: Thu Nov 24 2011 - 19:37:12 EST


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 <knikanth@xxxxxxx>
> > > >
> > > > 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.

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....

Cheers,

Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/