From: Vivek Goyal <vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: nauman-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
dpshah-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
lizf-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org,
mikew-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
fchecconi-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
paolo.valente-rcYM44yAMweonA0d6jMUrA@public.gmane.org,
jens.axboe-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org,
ryov-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org, fer
Cc: akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org
Subject: [PATCH 05/10] cfq changes to use hierarchical fair queuing code in elevaotor layer
Date: Wed, 11 Mar 2009 21:56:50 -0400 [thread overview]
Message-ID: <1236823015-4183-6-git-send-email-vgoyal@redhat.com> (raw)
In-Reply-To: <1236823015-4183-1-git-send-email-vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Make cfq hierarhical.
Signed-off-by: Nauman Rafique <nauman-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
Signed-off-by: Fabio Checconi <fabio-f9ZlEuEWxVeACYmtYXMKmw@public.gmane.org>
Signed-off-by: Paolo Valente <paolo.valente-rcYM44yAMweonA0d6jMUrA@public.gmane.org>
Signed-off-by: Aristeu Rozanski <aris-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Signed-off-by: Vivek Goyal <vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
block/Kconfig.iosched | 8 ++++++++
block/cfq-iosched.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
init/Kconfig | 2 +-
3 files changed, 57 insertions(+), 1 deletions(-)
diff --git a/block/Kconfig.iosched b/block/Kconfig.iosched
index dd5224d..a91a807 100644
--- a/block/Kconfig.iosched
+++ b/block/Kconfig.iosched
@@ -54,6 +54,14 @@ config IOSCHED_CFQ
working environment, suitable for desktop systems.
This is the default I/O scheduler.
+config IOSCHED_CFQ_HIER
+ bool "CFQ Hierarchical Scheduling support"
+ depends on IOSCHED_CFQ && CGROUPS
+ select GROUP_IOSCHED
+ default n
+ ---help---
+ Enable hierarhical scheduling in cfq.
+
choice
prompt "Default I/O scheduler"
default DEFAULT_CFQ
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 5b41b54..0ecf7c7 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -1069,6 +1069,50 @@ static void cfq_ioc_set_ioprio(struct io_context *ioc)
ioc->ioprio_changed = 0;
}
+#ifdef CONFIG_IOSCHED_CFQ_HIER
+static void changed_cgroup(struct io_context *ioc, struct cfq_io_context *cic)
+{
+ struct cfq_queue *async_cfqq = cic_to_cfqq(cic, 0);
+ struct cfq_queue *sync_cfqq = cic_to_cfqq(cic, 1);
+ struct cfq_data *cfqd = cic->key;
+ struct io_group *iog, *__iog;
+ unsigned long flags;
+ struct request_queue *q;
+
+ if (unlikely(!cfqd))
+ return;
+
+ q = cfqd->q;
+
+ spin_lock_irqsave(q->queue_lock, flags);
+
+ iog = io_lookup_io_group_current(q);
+
+ if (async_cfqq != NULL) {
+ __iog = cfqq_to_io_group(async_cfqq);
+
+ if (iog != __iog) {
+ cic_set_cfqq(cic, NULL, 0);
+ cfq_put_queue(async_cfqq);
+ }
+ }
+
+ if (sync_cfqq != NULL) {
+ __iog = cfqq_to_io_group(sync_cfqq);
+ if (iog != __iog)
+ io_ioq_move(q->elevator, sync_cfqq->ioq, iog);
+ }
+
+ spin_unlock_irqrestore(q->queue_lock, flags);
+}
+
+static void cfq_ioc_set_cgroup(struct io_context *ioc)
+{
+ call_for_each_cic(ioc, changed_cgroup);
+ ioc->cgroup_changed = 0;
+}
+#endif /* CONFIG_IOSCHED_CFQ_HIER */
+
static struct cfq_queue *
cfq_find_alloc_queue(struct cfq_data *cfqd, int is_sync,
struct io_context *ioc, gfp_t gfp_mask)
@@ -1335,6 +1379,10 @@ out:
smp_read_barrier_depends();
if (unlikely(ioc->ioprio_changed))
cfq_ioc_set_ioprio(ioc);
+#ifdef CONFIG_IOSCHED_CFQ_HIER
+ if (unlikely(ioc->cgroup_changed))
+ cfq_ioc_set_cgroup(ioc);
+#endif
return cic;
err_free:
cfq_cic_free(cic);
diff --git a/init/Kconfig b/init/Kconfig
index 66c2310..d7bc054 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -539,7 +539,7 @@ config CGROUP_MEM_RES_CTLR_SWAP
if boot option "noswapaccount" is set, swap will not be accounted.
config GROUP_IOSCHED
- bool "Group IO Scheduler"
+ bool
depends on CGROUPS && ELV_FAIR_QUEUING
default n
---help---
--
1.6.0.1
next prev parent reply other threads:[~2009-03-12 1:56 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-12 1:56 [RFC] IO Controller Vivek Goyal
[not found] ` <1236823015-4183-1-git-send-email-vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-03-12 1:56 ` [PATCH 01/10] Documentation Vivek Goyal
[not found] ` <1236823015-4183-2-git-send-email-vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-03-12 7:11 ` Andrew Morton
[not found] ` <20090312001146.74591b9d.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-03-12 10:07 ` Ryo Tsuruta
2009-03-12 18:01 ` Vivek Goyal
[not found] ` <20090312180126.GI10919@redhat.com>
[not found] ` <20090312180126.GI10919-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-03-16 8:40 ` Ryo Tsuruta
2009-04-05 15:15 ` Andrea Righi
[not found] ` <20090316.174043.193698189.ryov@valinux.co.jp>
[not found] ` <20090316.174043.193698189.ryov-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2009-03-16 13:39 ` Vivek Goyal
[not found] ` <49D8CB17.7040501@gmail.com>
[not found] ` <49D8CB17.7040501-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-04-06 6:50 ` Nauman Rafique
2009-04-07 6:40 ` Vivek Goyal
[not found] ` <20090407064046.GB20498-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-04-08 20:37 ` Andrea Righi
[not found] ` <20090408203756.GB10077@linux>
2009-04-16 18:37 ` Vivek Goyal
[not found] ` <20090416183753.GE8896-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-04-17 5:35 ` Dhaval Giani
2009-04-17 9:37 ` Andrea Righi
[not found] ` <20090417053517.GC26437@linux.vnet.ibm.com>
[not found] ` <20090417053517.GC26437-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2009-04-17 13:49 ` IO Controller discussion (Was: Re: [PATCH 01/10] Documentation) Vivek Goyal
[not found] ` <20090417093656.GA5246@linux>
2009-04-17 14:13 ` IO controller " Vivek Goyal
[not found] ` <20090417141358.GD29086@redhat.com>
[not found] ` <20090417141358.GD29086-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-04-17 18:09 ` Nauman Rafique
2009-04-17 22:38 ` Andrea Righi
2009-04-18 13:19 ` Balbir Singh
2009-04-19 4:35 ` Nauman Rafique
[not found] ` <e98e18940904171109r17ccb054kb7879f8d02ac26b5@mail.gmail.com>
[not found] ` <e98e18940904171109r17ccb054kb7879f8d02ac26b5-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-04-18 8:13 ` Andrea Righi
2009-04-19 12:59 ` Vivek Goyal
2009-04-19 13:08 ` Vivek Goyal
[not found] ` <20090417223809.GA3758@linux>
2009-04-19 13:21 ` Vivek Goyal
[not found] ` <661de9470904180619k34e7998ch755a2ad3bed9ce5e@mail.gmail.com>
[not found] ` <661de9470904180619k34e7998ch755a2ad3bed9ce5e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-04-19 13:45 ` Vivek Goyal
[not found] ` <20090419134508.GG8493@redhat.com>
[not found] ` <20090419134508.GG8493-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-04-19 15:53 ` Andrea Righi
[not found] ` <20090419155358.GC5514@linux>
2009-04-21 1:16 ` KAMEZAWA Hiroyuki
2009-03-12 7:45 ` [PATCH 01/10] Documentation Yang Hongyang
[not found] ` <49B8BDB3.40808-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-03-12 13:51 ` Vivek Goyal
2009-03-12 10:00 ` Dhaval Giani
2009-03-12 10:24 ` Peter Zijlstra
2009-03-12 14:09 ` Vivek Goyal
2009-04-06 14:35 ` Balbir Singh
[not found] ` <20090406143556.GK7082-SINUvgVNF2CyUtPGxGje5AC/G2K4zDHf@public.gmane.org>
2009-04-06 22:00 ` Nauman Rafique
2009-04-07 5:59 ` Gui Jianfeng
2009-04-13 13:40 ` Vivek Goyal
[not found] ` <20090413134017.GC18007@redhat.com>
[not found] ` <20090413134017.GC18007-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-05-01 22:04 ` IKEDA, Munehiro
[not found] ` <49FB71F7.90309@ds.jp.nec.com>
[not found] ` <49FB71F7.90309-MDRzhb/z0dd8UrSeD/g0lQ@public.gmane.org>
2009-05-01 22:45 ` IO Controller per cgroup request descriptors (Re: [PATCH 01/10] Documentation) Vivek Goyal
[not found] ` <20090501224506.GC6130-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-05-01 23:39 ` Nauman Rafique
[not found] ` <e98e18940905011639o63c048f1n79c7e7648441a06d@mail.gmail.com>
[not found] ` <e98e18940905011639o63c048f1n79c7e7648441a06d-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-05-04 17:18 ` IKEDA, Munehiro
[not found] ` <20090312100054.GA8024@linux.vnet.ibm.com>
[not found] ` <20090312100054.GA8024-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2009-03-12 14:04 ` [PATCH 01/10] Documentation Vivek Goyal
[not found] ` <20090312140450.GE10919@redhat.com>
[not found] ` <20090312140450.GE10919-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-03-12 14:48 ` Fabio Checconi
[not found] ` <20090312144842.GS12361-f9ZlEuEWxVeACYmtYXMKmw@public.gmane.org>
2009-03-12 15:03 ` Vivek Goyal
2009-03-18 7:23 ` Gui Jianfeng
[not found] ` <49C0A171.8060009@cn.fujitsu.com>
[not found] ` <49C0A171.8060009-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-03-18 21:55 ` Vivek Goyal
[not found] ` <20090318215529.GA3338-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-03-19 3:38 ` Gui Jianfeng
2009-03-24 5:32 ` Nauman Rafique
[not found] ` <e98e18940903232232i432f62c5r9dfd74268e1b2684@mail.gmail.com>
[not found] ` <e98e18940903232232i432f62c5r9dfd74268e1b2684-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-03-24 12:58 ` Vivek Goyal
[not found] ` <20090324125842.GA21389-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-03-24 18:14 ` Nauman Rafique
[not found] ` <e98e18940903241114u1e03ae7dhf654d7d8d0fc0302@mail.gmail.com>
[not found] ` <e98e18940903241114u1e03ae7dhf654d7d8d0fc0302-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-03-24 18:29 ` Vivek Goyal
[not found] ` <20090324184101.GO18554@gandalf.sssup.it>
[not found] ` <20090324184101.GO18554-f9ZlEuEWxVeACYmtYXMKmw@public.gmane.org>
2009-03-24 18:35 ` Vivek Goyal
[not found] ` <20090324183532.GG21389-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-03-24 18:49 ` Nauman Rafique
2009-03-24 19:04 ` Fabio Checconi
[not found] ` <20090324182906.GF21389-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-03-24 18:41 ` Fabio Checconi
2009-03-12 1:56 ` [PATCH 02/10] Common flat fair queuing code in elevaotor layer Vivek Goyal
2009-03-12 1:56 ` [PATCH 03/10] Modify cfq to make use of flat elevator fair queuing Vivek Goyal
2009-03-12 1:56 ` [PATCH 04/10] Common hierarchical fair queuing code in elevaotor layer Vivek Goyal
2009-03-12 1:56 ` Vivek Goyal [this message]
[not found] ` <1236823015-4183-6-git-send-email-vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-04-16 5:25 ` [PATCH] IO-Controller: Fix kernel panic after moving a task Gui Jianfeng
[not found] ` <49E6C14F.3090009@cn.fujitsu.com>
[not found] ` <49E6C14F.3090009-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-04-16 19:15 ` Vivek Goyal
2009-03-12 1:56 ` [PATCH 06/10] Separate out queue and data Vivek Goyal
2009-03-12 1:56 ` [PATCH 07/10] Prepare elevator layer for single queue schedulers Vivek Goyal
2009-03-12 1:56 ` [PATCH 08/10] noop changes for hierarchical fair queuing Vivek Goyal
2009-03-12 1:56 ` [PATCH 09/10] deadline " Vivek Goyal
2009-03-12 1:56 ` [PATCH 10/10] anticipatory " Vivek Goyal
[not found] ` <1236823015-4183-11-git-send-email-vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-03-27 6:58 ` [PATCH] IO Controller: No need to stop idling in as Gui Jianfeng
[not found] ` <49CC791A.10008@cn.fujitsu.com>
[not found] ` <49CC791A.10008-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-03-27 14:05 ` Vivek Goyal
[not found] ` <20090327140530.GE30476@redhat.com>
[not found] ` <20090327140530.GE30476-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-03-30 1:09 ` Gui Jianfeng
2009-03-12 3:27 ` [RFC] IO Controller Takuya Yoshikawa
2009-04-02 6:39 ` Gui Jianfeng
2009-04-10 9:33 ` Gui Jianfeng
2009-05-01 1:25 ` Divyesh Shah
[not found] ` <49B8810B.7030603@oss.ntt.co.jp>
[not found] ` <49B8810B.7030603-gVGce1chcLdL9jVzuh4AOg@public.gmane.org>
2009-03-12 6:40 ` anqin
2009-03-12 13:43 ` Vivek Goyal
[not found] ` <d95d44a20903112340s3c77807dt465e68901747ad89@mail.gmail.com>
[not found] ` <49B8B1FB.1040506@cn.fujitsu.com>
[not found] ` <49B8B1FB.1040506-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-03-12 7:11 ` anqin
[not found] ` <d95d44a20903120011m4a7281enf17b31b9aaf7c937@mail.gmail.com>
[not found] ` <d95d44a20903120011m4a7281enf17b31b9aaf7c937-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-03-12 14:57 ` Vivek Goyal
[not found] ` <d95d44a20903112340s3c77807dt465e68901747ad89-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-03-12 6:55 ` Li Zefan
2009-03-12 13:46 ` Vivek Goyal
[not found] ` <1236823015-4183-3-git-send-email-vgoyal@redhat.com>
[not found] ` <49CC8EBA.9040804@cn.fujitsu.com>
[not found] ` <49CC8EBA.9040804-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-03-27 13:52 ` [PATCH] IO Controller: Don't store the pid in single queue circumstances Vivek Goyal
[not found] ` <1236823015-4183-3-git-send-email-vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-03-19 6:27 ` [PATCH 02/10] Common flat fair queuing code in elevaotor layer Gui Jianfeng
2009-03-27 8:30 ` [PATCH] IO Controller: Don't store the pid in single queue circumstances Gui Jianfeng
2009-04-02 4:06 ` [PATCH 02/10] Common flat fair queuing code in elevaotor layer Divyesh Shah
[not found] ` <af41c7c40904012106h41d3cb50i2eeab2a02277a4c9@mail.gmail.com>
[not found] ` <af41c7c40904012106h41d3cb50i2eeab2a02277a4c9-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-04-02 13:52 ` Vivek Goyal
[not found] ` <49D45DAC.2060508@cn.fujitsu.com>
[not found] ` <49D45DAC.2060508-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-04-02 14:00 ` [RFC] IO Controller Vivek Goyal
[not found] ` <20090402140037.GC12851-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-04-07 1:40 ` Gui Jianfeng
[not found] ` <49DAAF25.8010702@cn.fujitsu.com>
[not found] ` <49DAAF25.8010702-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-04-07 6:40 ` Gui Jianfeng
[not found] ` <49DF1256.7080403@cn.fujitsu.com>
[not found] ` <49DF1256.7080403-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-04-10 17:49 ` Nauman Rafique
2009-04-13 13:09 ` Vivek Goyal
[not found] ` <20090413130958.GB18007@redhat.com>
[not found] ` <20090413130958.GB18007-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-04-22 3:04 ` Gui Jianfeng
[not found] ` <49EE895A.1060101@cn.fujitsu.com>
[not found] ` <49EE895A.1060101-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-04-22 3:10 ` Nauman Rafique
2009-04-22 13:23 ` Vivek Goyal
[not found] ` <20090422132307.GA23098@redhat.com>
[not found] ` <20090422132307.GA23098-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-04-30 19:38 ` Nauman Rafique
[not found] ` <49F9FE3C.3070000@google.com>
[not found] ` <49F9FE3C.3070000-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2009-05-05 3:18 ` Gui Jianfeng
[not found] ` <49FA4F91.204@google.com>
[not found] ` <49FA4F91.204-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2009-05-01 2:45 ` Vivek Goyal
[not found] ` <20090501024527.GA3730@redhat.com>
[not found] ` <20090501024527.GA3730-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-05-01 3:00 ` Divyesh Shah
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1236823015-4183-6-git-send-email-vgoyal@redhat.com \
--to=vgoyal-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=dpshah-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=fchecconi-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=jens.axboe-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
--cc=lizf-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org \
--cc=menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=mikew-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=nauman-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=paolo.valente-rcYM44yAMweonA0d6jMUrA@public.gmane.org \
--cc=ryov-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox