#!/bin/bash

if [ -z "$1" ]; then
  ra=2048
else
  ra="$1"
fi

for i in $( find /sys/devices/pci* /sys/devices/virtual -name read_ahead_kb ); do
  a=`echo $i | awk -F/ '{
				i=0
				while ( i < NF ) {
					if($i == "block" ) {
					    i++
					    print $i
					    break
					}
					i++
				}
			}'`
  was=$(cat $i)
  echo "readahead (was: $was) $ra -> $a"
  echo $ra > $i
done

if [ "$ra" -gt 1024 ]; then
  ra=1024
fi


exit 0

# not reached:
for i in /sys/block/*/device/max_sectors; do
  a=`echo $i | awk -F/ '{ print $6 }'`
  was=$(cat $i)
  echo "max_sectors (was: $was) $ra '->' $a"
  echo 1024 > $i
done
