# SPDX-License-Identifier: GPL-2.0
if BLOCK

menu "IO Schedulers"

config IOSCHED_NOOP
	bool
	default y
	---help---
	  The no-op I/O scheduler is a minimal scheduler that does basic merging
	  and sorting. Its main uses include non-disk based block devices like
	  memory devices, and specialised software or hardware environments
	  that do their own scheduling and require only minimal assistance from
	  the kernel.

config IOSCHED_DEADLINE
	tristate "Deadline I/O scheduler"
	default y
	---help---
	  The deadline I/O scheduler is simple and compact. It will provide
	  CSCAN service with FIFO expiration of requests, switching to
	  a new point in the service tree and doing a batch of IO from there
	  in case of expiry.

config IOSCHED_CFQ
	tristate "CFQ I/O scheduler"
	default y
	---help---
	  The CFQ I/O scheduler tries to distribute bandwidth equally
	  among all processes in the system. It should provide a fair
	  and low latency working environment, suitable for both desktop
	  and server systems.

	  This is the default I/O scheduler.

config CFQ_GROUP_IOSCHED
	bool "CFQ Group Scheduling support"
	depends on IOSCHED_CFQ && BLK_CGROUP
	---help---
	  Enable group IO scheduling in CFQ.

choice

	prompt "Default I/O scheduler"
	default DEFAULT_CFQ
	help
	  Select the I/O scheduler which will be used by default for all
	  block devices.

	config DEFAULT_DEADLINE
		bool "Deadline" if IOSCHED_DEADLINE=y

	config DEFAULT_CFQ
		bool "CFQ" if IOSCHED_CFQ=y

	config DEFAULT_NOOP
		bool "No-op"

endchoice

config DEFAULT_IOSCHED
	string
	default "deadline" if DEFAULT_DEADLINE
	default "cfq" if DEFAULT_CFQ
	default "noop" if DEFAULT_NOOP

config MQ_IOSCHED_DEADLINE
	tristate "MQ deadline I/O scheduler"
	default y
	---help---
	  MQ version of the deadline IO scheduler.

config MQ_IOSCHED_KYBER
	tristate "Kyber I/O scheduler"
	default y
	---help---
	  The Kyber I/O scheduler is a low-overhead scheduler suitable for
	  multiqueue and other fast devices. Given target latencies for reads and
	  synchronous writes, it will self-tune queue depths to achieve that
	  goal.

config IOSCHED_BFQ
	tristate "BFQ I/O scheduler"
	---help---
	BFQ I/O scheduler for BLK-MQ. BFQ distributes the bandwidth of
	of the device among all processes according to their weights,
	regardless of the device parameters and with any workload. It
	also guarantees a low latency to interactive and soft
	real-time applications.  Details in
	Documentation/block/bfq-iosched.txt

config BFQ_GROUP_IOSCHED
       bool "BFQ hierarchical scheduling support"
       depends on IOSCHED_BFQ && BLK_CGROUP
       ---help---

       Enable hierarchical scheduling in BFQ, using the blkio
       (cgroups-v1) or io (cgroups-v2) controller.

endmenu

endif
