[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[dm-devel] Re: [PATCH] io-controller: implement per group request allocation limitation
- From: Munehiro Ikeda <m-ikeda ds jp nec com>
- To: Gui Jianfeng <guijianfeng cn fujitsu com>
- Cc: dhaval linux vnet ibm com, snitzer redhat com, peterz infradead org, dm-devel redhat com, dpshah google com, jens axboe oracle com, agk redhat com, balbir linux vnet ibm com, paolo valente unimore it, fernando oss ntt co jp, mikew google com, jmoyer redhat com, nauman google com, Vivek Goyal <vgoyal redhat com>, righi andrea gmail com, lizf cn fujitsu com, fchecconi gmail com, akpm linux-foundation org, jbaron redhat com, linux-kernel vger kernel org, s-uchida ap jp nec com, containers lists linux-foundation org
- Subject: [dm-devel] Re: [PATCH] io-controller: implement per group request allocation limitation
- Date: Mon, 03 Aug 2009 22:04:09 -0400
Gui Jianfeng wrote, on 07/09/2009 09:56 PM:
Hi Vivek,
This patch exports a cgroup based per group request limits interface.
and removes the global one. Now we can use this interface to perform
different request allocation limitation for different groups.
Signed-off-by: Gui Jianfeng<guijianfeng cn fujitsu com>
(snip)
Hi Jianfeng,
If this helps, again.
A patch posted from Gui Jianfeng on 2009/07/09 adds per-cgroup
nr_requests control by io.nr_group_requests. The patch missed to update
iog->nr_congestion_{on|off} and this patch adds the missing-link.
Signed-off-by: Munehiro "Muuhh" Ikeda <m-ikeda ds jp nec com>
---
block/elevator-fq.c | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/block/elevator-fq.c b/block/elevator-fq.c
index 673e490..316bd8d 100644
--- a/block/elevator-fq.c
+++ b/block/elevator-fq.c
@@ -1607,6 +1607,10 @@ static int io_cgroup_nr_requests_write(struct cgroup *cgroup,
u64 val)
{
struct io_cgroup *iocg;
+ struct io_group *iog;
+ struct elv_fq_data *efqd;
+ struct request_queue *q;
+ struct hlist_node *n;
if (val < BLKDEV_MIN_RQ)
val = BLKDEV_MIN_RQ;
@@ -1618,6 +1622,13 @@ static int io_cgroup_nr_requests_write(struct cgroup *cgroup,
spin_lock_irq(&iocg->lock);
iocg->nr_group_requests = (unsigned long)val;
+ hlist_for_each_entry(iog, n, &iocg->group_data, group_node) {
+ rcu_read_lock();
+ efqd = rcu_dereference(iog->key);
+ q = efqd->queue;
+ rcu_read_unlock();
+ elv_io_group_congestion_threshold(q, iog);
+ }
spin_unlock_irq(&iocg->lock);
cgroup_unlock();
--
1.6.2.5
--
IKEDA, Munehiro
NEC Corporation of America
m-ikeda ds jp nec com
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]