xref: /openbmc/linux/Documentation/block/switching-sched.rst (revision 976e3645923bdd2fe7893aae33fd7a21098bfb28)
1*898bd37aSMauro Carvalho Chehab===================
2*898bd37aSMauro Carvalho ChehabSwitching Scheduler
3*898bd37aSMauro Carvalho Chehab===================
4*898bd37aSMauro Carvalho Chehab
5*898bd37aSMauro Carvalho ChehabEach io queue has a set of io scheduler tunables associated with it. These
6*898bd37aSMauro Carvalho Chehabtunables control how the io scheduler works. You can find these entries
7*898bd37aSMauro Carvalho Chehabin::
8*898bd37aSMauro Carvalho Chehab
9*898bd37aSMauro Carvalho Chehab	/sys/block/<device>/queue/iosched
10*898bd37aSMauro Carvalho Chehab
11*898bd37aSMauro Carvalho Chehabassuming that you have sysfs mounted on /sys. If you don't have sysfs mounted,
12*898bd37aSMauro Carvalho Chehabyou can do so by typing::
13*898bd37aSMauro Carvalho Chehab
14*898bd37aSMauro Carvalho Chehab	# mount none /sys -t sysfs
15*898bd37aSMauro Carvalho Chehab
16*898bd37aSMauro Carvalho ChehabIt is possible to change the IO scheduler for a given block device on
17*898bd37aSMauro Carvalho Chehabthe fly to select one of mq-deadline, none, bfq, or kyber schedulers -
18*898bd37aSMauro Carvalho Chehabwhich can improve that device's throughput.
19*898bd37aSMauro Carvalho Chehab
20*898bd37aSMauro Carvalho ChehabTo set a specific scheduler, simply do this::
21*898bd37aSMauro Carvalho Chehab
22*898bd37aSMauro Carvalho Chehab	echo SCHEDNAME > /sys/block/DEV/queue/scheduler
23*898bd37aSMauro Carvalho Chehab
24*898bd37aSMauro Carvalho Chehabwhere SCHEDNAME is the name of a defined IO scheduler, and DEV is the
25*898bd37aSMauro Carvalho Chehabdevice name (hda, hdb, sga, or whatever you happen to have).
26*898bd37aSMauro Carvalho Chehab
27*898bd37aSMauro Carvalho ChehabThe list of defined schedulers can be found by simply doing
28*898bd37aSMauro Carvalho Chehaba "cat /sys/block/DEV/queue/scheduler" - the list of valid names
29*898bd37aSMauro Carvalho Chehabwill be displayed, with the currently selected scheduler in brackets::
30*898bd37aSMauro Carvalho Chehab
31*898bd37aSMauro Carvalho Chehab  # cat /sys/block/sda/queue/scheduler
32*898bd37aSMauro Carvalho Chehab  [mq-deadline] kyber bfq none
33*898bd37aSMauro Carvalho Chehab  # echo none >/sys/block/sda/queue/scheduler
34*898bd37aSMauro Carvalho Chehab  # cat /sys/block/sda/queue/scheduler
35*898bd37aSMauro Carvalho Chehab  [none] mq-deadline kyber bfq
36