1===================
2Switching Scheduler
3===================
4
5To choose IO schedulers at boot time, use the argument 'elevator=deadline'.
6'noop' and 'cfq' (the default) are also available. IO schedulers are assigned
7globally at boot time only presently.
8
9Each io queue has a set of io scheduler tunables associated with it. These
10tunables control how the io scheduler works. You can find these entries
11in::
12
13	/sys/block/<device>/queue/iosched
14
15assuming that you have sysfs mounted on /sys. If you don't have sysfs mounted,
16you can do so by typing::
17
18	# mount none /sys -t sysfs
19
20It is possible to change the IO scheduler for a given block device on
21the fly to select one of mq-deadline, none, bfq, or kyber schedulers -
22which can improve that device's throughput.
23
24To set a specific scheduler, simply do this::
25
26	echo SCHEDNAME > /sys/block/DEV/queue/scheduler
27
28where SCHEDNAME is the name of a defined IO scheduler, and DEV is the
29device name (hda, hdb, sga, or whatever you happen to have).
30
31The list of defined schedulers can be found by simply doing
32a "cat /sys/block/DEV/queue/scheduler" - the list of valid names
33will be displayed, with the currently selected scheduler in brackets::
34
35  # cat /sys/block/sda/queue/scheduler
36  [mq-deadline] kyber bfq none
37  # echo none >/sys/block/sda/queue/scheduler
38  # cat /sys/block/sda/queue/scheduler
39  [none] mq-deadline kyber bfq
40