[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

This is an old revision of the document!


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/

* 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 the 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

* 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

* 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

* Now copy your config file to /usr/src/linux and rename it .config example: (assuming the config you created above is in your home directory)

 cp /$HOME/BFQ_CONFIG /usr/src/linux.config

* 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 Building a Linux Kernel from Source

Sources

 howtos:hardware:bfq_io_scheduler ()