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

Sources

 howtos:hardware:bfq_io_scheduler ()