====== Use BFQ IO scheduler ======
Budget Fair Queueing (BFQ) Storage-I/O Scheduler
* Why do I want BFQ? -Seems to speed up disk based IO see the Source section for more info. \\
[[http://algo.ing.unimo.it/people/paolo/disk_sched/|http://algo.ing.unimo.it/people/paolo/disk_sched/]]
* First collect your existing kernel configuration.
zcat /proc/config.gz > BFQ_CONFIG
* Next prepare your BFQ_CONFIG file (use vi or nano etc). I like to locate "CONFIG_DEFAULT_CFQ" section and make it look like below. Be careful not to have duplicate lines. I'm thinking there is a better way maybe someone could point it out. Basically add the two lines about BFQ change the existing CONFIG_DEFAULT_CFQ to "is not set" and add "CONFIG_DEFAULT_BFQ=y':
CONFIG_IOSCHED_BFQ=y
CONFIG_CGROUP_BFQIO=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
CONFIG_DEFAULT_BFQ=y
You may not need to manually edit the BFQ_CONFIG. I noticed make oldconfig will prompt you about the patches added.
* Now grab the code: (I'm using 3.14 in this sample as Slackware-current is currently using 3.14.18)
VERSION=3.14.0-v7r6 # the version you want
wget -nd --no-parent --level 1 -r -R "*.html*" --reject $VERSION \
http://algo.ing.unimo.it/people/paolo/disk_sched/patches/$VERSION
* Now copy your config file to /usr/src/linux and rename it to ''.config'' \\ Example: (assuming the config you created above is in your home directory)
cp $HOME/BFQ_CONFIG /usr/src/linux/.config
* Next copy these files to /usr/src/linux and then patch (you'll want 0001 to 0003).
cp ./000* /usr/src/linux;cd /usr/src/linux
patch -p1 < 0001-block-cgroups-kconfig-build-bits-for-BFQ-v7r6-3.14.patch
patch -p1 < 0002-block-introduce-the-BFQ-v7r6-I-O-sched-for-3.14.patch
patch -p1 < 0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-v7r6-for-3.14.0.patch
* cd /usr/src/linux ;make oldconfig ;make -j4 && make modules_install
* copy bzImage and System.map to boot folder
* add lilo entry and update lilo.
* More Details here [[howtos:slackware_admin:kernelbuilding|Building a Linux Kernel from Source]]
====== Sources ======
* Original source: [[http://algo.ing.unimo.it/people/paolo/disk_sched/sources.php]]
* Originally written by [[wiki:ricky_cardo:xxx | ricky_cardo]]
* Idea from rpi work by ponce adding bfq
{{tag>howtos}}