mirror of
https://abf.rosa.ru/djam/kernel-6.1.git
synced 2025-02-25 08:12:56 +00:00

Earlier, the patches were kept in the respective branches of a separate project, https://abf.io/soft/kernel-patches-and-configs. And before that - in the custom tarballs. Now all the patches are kept here along with the spec file and are applied the default way rather than by separate scripts. This should make the maintenance of the patches as well as the experiments with the new ones a lot easier. The previous scheme seemed to offer a bit more flexibility (different patch sets for different cases) at the cost of maintenance. But as it turned out, that flexibility was not worth it and was rarely used, at most.
103 lines
3.4 KiB
Diff
103 lines
3.4 KiB
Diff
From f54f3003586bf00ba0ee5974a92b732477b834e3 Mon Sep 17 00:00:00 2001
|
|
From: Paolo Valente <paolo.valente@unimore.it>
|
|
Date: Tue, 7 Apr 2015 13:39:12 +0200
|
|
Subject: [PATCH 1/3] block: cgroups, kconfig, build bits for BFQ-v7r11-4.5.0
|
|
|
|
Update Kconfig.iosched and do the related Makefile changes to include
|
|
kernel configuration options for BFQ. Also increase the number of
|
|
policies supported by the blkio controller so that BFQ can add its
|
|
own.
|
|
|
|
Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
|
|
Signed-off-by: Arianna Avanzini <avanzini@google.com>
|
|
---
|
|
block/Kconfig.iosched | 32 ++++++++++++++++++++++++++++++++
|
|
block/Makefile | 1 +
|
|
include/linux/blkdev.h | 2 +-
|
|
3 files changed, 34 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/block/Kconfig.iosched b/block/Kconfig.iosched
|
|
index 421bef9..0ee5f0f 100644
|
|
--- a/block/Kconfig.iosched
|
|
+++ b/block/Kconfig.iosched
|
|
@@ -39,6 +39,27 @@ config CFQ_GROUP_IOSCHED
|
|
---help---
|
|
Enable group IO scheduling in CFQ.
|
|
|
|
+config IOSCHED_BFQ
|
|
+ tristate "BFQ I/O scheduler"
|
|
+ default n
|
|
+ ---help---
|
|
+ The BFQ I/O scheduler tries to distribute bandwidth among
|
|
+ all processes according to their weights.
|
|
+ It aims at distributing the bandwidth as desired, independently of
|
|
+ the disk parameters and with any workload. It also tries to
|
|
+ guarantee low latency to interactive and soft real-time
|
|
+ applications. If compiled built-in (saying Y here), BFQ can
|
|
+ be configured to support hierarchical scheduling.
|
|
+
|
|
+config CGROUP_BFQIO
|
|
+ bool "BFQ hierarchical scheduling support"
|
|
+ depends on CGROUPS && IOSCHED_BFQ=y
|
|
+ default n
|
|
+ ---help---
|
|
+ Enable hierarchical scheduling in BFQ, using the cgroups
|
|
+ filesystem interface. The name of the subsystem will be
|
|
+ bfqio.
|
|
+
|
|
choice
|
|
prompt "Default I/O scheduler"
|
|
default DEFAULT_CFQ
|
|
@@ -52,6 +73,16 @@ choice
|
|
config DEFAULT_CFQ
|
|
bool "CFQ" if IOSCHED_CFQ=y
|
|
|
|
+ config DEFAULT_BFQ
|
|
+ bool "BFQ" if IOSCHED_BFQ=y
|
|
+ help
|
|
+ Selects BFQ as the default I/O scheduler which will be
|
|
+ used by default for all block devices.
|
|
+ The BFQ I/O scheduler aims at distributing the bandwidth
|
|
+ as desired, independently of the disk parameters and with
|
|
+ any workload. It also tries to guarantee low latency to
|
|
+ interactive and soft real-time applications.
|
|
+
|
|
config DEFAULT_NOOP
|
|
bool "No-op"
|
|
|
|
@@ -61,6 +92,7 @@ config DEFAULT_IOSCHED
|
|
string
|
|
default "deadline" if DEFAULT_DEADLINE
|
|
default "cfq" if DEFAULT_CFQ
|
|
+ default "bfq" if DEFAULT_BFQ
|
|
default "noop" if DEFAULT_NOOP
|
|
|
|
endmenu
|
|
diff --git a/block/Makefile b/block/Makefile
|
|
index 00ecc97..1ed86d5 100644
|
|
--- a/block/Makefile
|
|
+++ b/block/Makefile
|
|
@@ -18,6 +18,7 @@ obj-$(CONFIG_BLK_DEV_THROTTLING) += blk-throttle.o
|
|
obj-$(CONFIG_IOSCHED_NOOP) += noop-iosched.o
|
|
obj-$(CONFIG_IOSCHED_DEADLINE) += deadline-iosched.o
|
|
obj-$(CONFIG_IOSCHED_CFQ) += cfq-iosched.o
|
|
+obj-$(CONFIG_IOSCHED_BFQ) += bfq-iosched.o
|
|
|
|
obj-$(CONFIG_BLOCK_COMPAT) += compat_ioctl.o
|
|
obj-$(CONFIG_BLK_CMDLINE_PARSER) += cmdline-parser.o
|
|
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
|
|
index c70e358..ae43492 100644
|
|
--- a/include/linux/blkdev.h
|
|
+++ b/include/linux/blkdev.h
|
|
@@ -44,7 +44,7 @@ struct pr_ops;
|
|
* Maximum number of blkcg policies allowed to be registered concurrently.
|
|
* Defined here to simplify include dependency.
|
|
*/
|
|
-#define BLKCG_MAX_POLS 2
|
|
+#define BLKCG_MAX_POLS 3
|
|
|
|
struct request;
|
|
typedef void (rq_end_io_fn)(struct request *, int);
|
|
--
|
|
1.9.1
|
|
|