only preempts W when there are not
any readers in that group.
Thanks,
Gui Jianfeng
Same is true for meta data requests. If there is a meta data request and
a reader is running inside a sibling group, preemption will be allowed.
Note, following is not allowed
Hi Vivek,
Currently, we just set this flag when anticipating next request.
So make sure we remove this flag also in this case.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/as-iosched.c |5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/block
Vivek Goyal wrote:
On Wed, Sep 16, 2009 at 10:58:10AM +0800, Gui Jianfeng wrote:
[..]
o Fixed the issue of not expiring the queue for single ioq schedulers.
Reported
and fixed by Gui.
o If an AS queue is not expired for a long time and suddenly somebody
decides to create a group
Vivek Goyal wrote:
On Fri, Sep 11, 2009 at 09:15:42AM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
On Wed, Sep 09, 2009 at 03:38:25PM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
On Mon, Sep 07, 2009 at 03:40:53PM +0800, Gui Jianfeng wrote:
Hi Vivek,
I happened to encount a bug when i
Vivek Goyal wrote:
On Fri, Sep 11, 2009 at 09:15:42AM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
On Wed, Sep 09, 2009 at 03:38:25PM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
On Mon, Sep 07, 2009 at 03:40:53PM +0800, Gui Jianfeng wrote:
Hi Vivek,
I happened to encount a bug when i
Vivek Goyal wrote:
On Wed, Sep 09, 2009 at 03:38:25PM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
On Mon, Sep 07, 2009 at 03:40:53PM +0800, Gui Jianfeng wrote:
Hi Vivek,
I happened to encount a bug when i test IO Controller V9.
When there are three tasks to run concurrently in three group
Vivek Goyal wrote:
On Mon, Sep 07, 2009 at 03:40:53PM +0800, Gui Jianfeng wrote:
Hi Vivek,
I happened to encount a bug when i test IO Controller V9.
When there are three tasks to run concurrently in three group,
that is, one is parent group, and other two tasks are running
in two different
Vivek Goyal wrote:
On Wed, Sep 09, 2009 at 03:38:25PM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
On Mon, Sep 07, 2009 at 03:40:53PM +0800, Gui Jianfeng wrote:
Hi Vivek,
I happened to encount a bug when i test IO Controller V9.
When there are three tasks to run concurrently in three group
Hi Vivek,
I happened to encount a bug when i test IO Controller V9.
When there are three tasks to run concurrently in three group,
that is, one is parent group, and other two tasks are running
in two different child groups respectively to read or write
files in some disk, say disk hdb, The task
Hi Vivek,
Here is the vanilla kernel and V9 comparision.
Normal Read | Random Read | Normal Write |
Random Write
vanilla(Avg of 3 times) 67580 KiB/s 3540 KiB/s 61964 KiB/s 9823
KiB/s
V9(Avg of 3 times)68954 KiB/s 3567 KiB/s
Vivek Goyal wrote:
Hi All,
Here is the V9 of the IO controller patches generated on top of 2.6.31-rc7.
For ease of patching, a consolidated patch is available here.
http://people.redhat.com/~vgoyal/io-controller/io-scheduler-based-io-controller-v9.patch
Changes from V8
controller patches.
Gui, can you please test it and see if this version is better in terms
of your buffered write tests.
Ok, will do.
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux
);
+ goto done;
+ }
+
Hi Vivek,
I think we shouldn't arm idle timer on iog again, if it's already on.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c |3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff
-min_vdisktime = max_vdisktime(st-min_vdisktime, vdisktime);
+}
block/elevator-fq.c: In function ‘elv_ioq_slice_expired’:
block/elevator-fq.c:132: warning: ‘vdisktime’ may be used uninitialized in this
function
LD block/built-in.o
We'd better initialize vdisktime at first.
Signed-off-by: Gui Jianfeng
done;
}
+ /* Wait for requests to finish from this queue */
+ if (efqd-fairness ioq-dispatched)
Since we have the routing to access to ioq-dispatched, why not to use it.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
Vivek Goyal wrote:
On Thu, Aug 20, 2009 at 09:46:10AM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
...
/*
* Remember that we saw a request from this process, but
@@ -1940,7 +2013,7 @@ void elv_ioq_request_add(struct request_queue *q,
struct request *rq
-ioprio_changed)) {
+ dequeue_io_entity(entity);
+ io_entity_update_prio(entity);
Hi Vivek,
we don't need to update prio here for the following enqueue_io_entity()
is already taking care of it.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator
request on ioq, it will go into
this path every time when a request is enqueued.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c |3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/block/elevator-fq.c b/block/elevator-fq.c
index b3c387d..201543e
that it will be selected next.
+ */
+
+ requeue_ioq(ioq);
+ ioq-slice_start = ioq-slice_end = 0;
I think this assignment is redundant because these two members will be reset
when this ioq is scheduled.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c
Vivek Goyal wrote:
On Tue, Aug 04, 2009 at 08:48:00AM +0800, Gui Jianfeng wrote:
Vivek, Here are some test results with and without
CONFIG_TRACK_ASYNC_CONTEXT for V7
ModeNormal read | Random read | Normal
write | Random write | Direct read
-initialize the service tree as ioprio class of the
+ * entity might have changed.
+ */
+ init_io_entity_service_tree(entity, parent_entity(entity));
+ entity-ioprio_changed = 0;
+ }
+}
+
--
Regards
Gui Jianfeng
-nr_congestion_off = nr;
Vivek,
Since we determine whether io group is congenssed or not just by checking
iog-nr_congestion_on, we can get rid of iog-nr_congestion_off here.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c |6 --
block/elevator-fq.h |3 +--
2 files
it.
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
___
Devel mailing list
Devel@openvz.org
https
Munehiro Ikeda wrote:
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
Munehiro Ikeda wrote:
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
%-4.0% +2.0%
Vivek Goyal wrote:
On Fri, Jul 31, 2009 at 01:21:51PM +0800, Gui Jianfeng wrote:
Hi Vivek,
Here are some test results for normal reads and write for IO Controller V7
by fio.
Tested with fairness == 0. It seems performance gets better comparing with
V6.
Mode
Vivek Goyal wrote:
On Fri, Jul 31, 2009 at 01:21:51PM +0800, Gui Jianfeng wrote:
Hi Vivek,
Here are some test results for normal reads and write for IO Controller V7
by fio.
Tested with fairness == 0. It seems performance gets better comparing with
V6.
Mode Normal read
, NULL, create);
+ return io_get_io_group(q, page, create);
}
EXPORT_SYMBOL(io_get_io_group_bio);
+}
+EXPORT_SYMBOL(io_get_io_group_bio);
+
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https
the check if (cfq_rq_close(cfqd, rq)) to see
whether
it should preempt the current cfqq. From fairness point of view, should we
also
check fairness value, if it's set fairness == 1, don't allow to preempt the
current
cfqq?
--
Regards
Gui Jianfeng
field represents disk time in milliseconds and
number of sectors transferred respectively.
So disk time consumed by group1 is almost double of group2 in this case.
Your feedback is welcome.
Thanks
Vivek
--
Regards
Gui Jianfeng
Vivek Goyal wrote:
On Mon, Jul 27, 2009 at 10:10:34AM +0800, Gui Jianfeng wrote:
Hi,
Here are some fio test results for IO Controller V6 built and not built.
Iozone test results are also attached.
Hi Gui,
Thanks a lot for some performance numbers. It seems to be a mixed chart
Vivek Goyal wrote:
On Mon, Jul 27, 2009 at 08:55:03AM -0400, Vivek Goyal wrote:
On Mon, Jul 27, 2009 at 10:10:34AM +0800, Gui Jianfeng wrote:
Hi,
Here are some fio test results for IO Controller V6 built and not built.
Iozone test results are also attached.
Hi Gui,
Thanks a lot for some
becoming the bottle-neck of allocating
requests, whether we can update nr_requests accordingly when allocating or
removing
a cgroup?
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux
Vivek Goyal wrote:
On Fri, Jul 10, 2009 at 09:56:21AM +0800, Gui Jianfeng wrote:
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
Munehiro Ikeda wrote:
Vivek Goyal wrote, on 07/13/2009 12:03 PM:
On Fri, Jul 10, 2009 at 09:56:21AM +0800, Gui Jianfeng wrote:
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
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 guijianf...@cn.fujitsu.com
---
block/blk-core.c
conform with io.policy's.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c |8
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/block/elevator-fq.c b/block/elevator-fq.c
index 7c83d1e..29392e7 100644
--- a/block/elevator-fq.c
+++ b/block
-queue_lock);
+ return ret;
+}
+#endif
Hi Vivek,
Do we need to update the congestion thresholds for allocated io groups?
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/blk-sysfs.c | 15 +++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/block/blk
Get rid of css id from io cgroup since it's nothing
more than keeping track of iocg. An alternative is
caching iocg pointer in io group, just remove the
complexity.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c | 36
block
opinion?
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
___
Devel mailing list
Devel@openvz.org
https
Li Zefan wrote:
CC: container list
Gui Jianfeng wrote:
Currently, /proc/cgroups outputs is fairly ugly as following,
#subsys_namehierarchy num_cgroups enabled
cpuset 0 1 1
debug 0 1 1
ns 0 1 1
indent it in a good-looking way
Li Zefan wrote:
Gui Jianfeng wrote:
Li Zefan wrote:
CC: container list
Gui Jianfeng wrote:
Currently, /proc/cgroups outputs is fairly ugly as following,
#subsys_namehierarchy num_cgroups enabled
cpuset 0 1 1
debug 0 1 1
ns 0 1 1
the default cfq behavior. Am i missing something?
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
___
Devel
(q-queue_lock);
+ elv_log_ioq(efqd, ioq, slice expired);
+
+ if (elv_ioq_wait_request(ioq))
+ del_timer(efqd-idle_slice_timer);
+
+ elv_clear_ioq_wait_request(ioq);
+
+ /*
--
Regards
Gui Jianfeng
___
Containers
Hi Vivek,
We don't expect expiring an idle ioq if it's the only ioq
in the hierarchy.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c | 12 ++--
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/block/elevator-fq.c b/block/elevator-fq.c
Vivek Goyal wrote:
On Tue, Jun 30, 2009 at 03:49:21PM +0800, Gui Jianfeng wrote:
Hi Vivek,
We don't expect expiring an idle ioq if it's the only ioq
in the hierarchy.
Hi Gui,
This patch will avoid idle queue expiry for single ioq schedulers. But
that's not an issue anyway as single
.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c | 29 ++---
1 files changed, 10 insertions(+), 19 deletions(-)
diff --git a/block/elevator-fq.c b/block/elevator-fq.c
index d779282..b26fe0f 100644
--- a/block/elevator-fq.c
+++ b/block
Maintain a busy rt ioq list in efqd so that we can easily
keep track of all busy rt ioqs in system.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c |8
block/elevator-fq.h |6 ++
2 files changed, 14 insertions(+), 0 deletions(-)
diff --git
let rt queue preempt non-rt queue if needed.
Make sure comparision happens at the same level.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c | 28 +++-
1 files changed, 27 insertions(+), 1 deletions(-)
diff --git a/block/elevator-fq.c b
weight class
3:64300 2
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c | 59 ++
block/elevator-fq.h |1 -
2 files changed, 40 insertions(+), 20 deletions(-)
diff --git a/block/elevator-fq.c b/block
switch to that.
Sure, i'll post another patch to switch to that.
Thanks
Vivek
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
weight now we are planning to use unsigned int. Can you
please switch to that.
Thanks
Vivek
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
Vivek Goyal wrote:
On Tue, Jun 23, 2009 at 02:44:08PM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
On Mon, Jun 22, 2009 at 03:44:08PM +0800, Gui Jianfeng wrote:
Preempt the ongoing non-rt ioq if there are rt ioqs waiting for dispatching
in ancestor or sibling groups. It will give other
Vivek Goyal wrote:
On Mon, Jun 22, 2009 at 03:44:08PM +0800, Gui Jianfeng wrote:
Preempt the ongoing non-rt ioq if there are rt ioqs waiting for dispatching
in ancestor or sibling groups. It will give other group's rt ioq an chance
to dispatch ASAP.
Hi Gui,
Will new preempton logic
(cgroup))
+ return -ENODEV;
+
+ iocg = cgroup_to_io_cgroup(cgroup);
+
+ spin_lock_irq(iocg-lock);
It's better to make use of rcu_read_lock instead since it's
a read action.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c | 12 ++--
1
Preempt the ongoing non-rt ioq if there are rt ioqs waiting for dispatching
in ancestor or sibling groups. It will give other group's rt ioq an chance
to dispatch ASAP.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c | 44
);
Since cgroup path is already cached, why not use it. :)
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c | 12
1 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/block/elevator-fq.c b/block/elevator-fq.c
index bfa79c9..1a397c3 100644
%d%c fmt, (ioq)-pid,\
elv_ioq_sync(ioq) ? 'S' : 'A', ##args)
+#endif
#define elv_log(efqd, fmt, args...) \
blk_add_trace_msg((efqd)-queue, elv fmt, ##args)
--
Regards
Gui Jianfeng
___
Containers mailing
Vivek Goyal wrote:
...
+
+struct io_group *rq_iog(struct request_queue *q, struct request *rq)
{
return q-elevator-efqd.root_group;
}
There is no need for this function now.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c |5 -
1 files changed
Vivek Goyal wrote:
This patch changes cfq to use fair queuing code from elevator layer.
elevator_private2 isn't used to store cfqq now.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/cfq-iosched.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git
Vivek Goyal wrote:
This patch changes cfq to use fair queuing code from elevator layer.
Signed-off-by: Nauman Rafique nau...@google.com
Signed-off-by: Fabio Checconi fa...@gandalf.sssup.it
Signed-off-by: Paolo Valente paolo.vale...@unimore.it
Signed-off-by: Gui Jianfeng guijianf
Vivek Goyal wrote:
...
+
+int elv_nr_busy_rt_ioq(struct elevator_queue *e)
+{
+ return e-efqd.busy_rt_queues;
+}
+EXPORT_SYMBOL(elv_nr_busy_rt_ioq);
This function is no need now.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c |6 --
block
Vivek Goyal wrote:
This patch changes cfq to use fair queuing code from elevator layer.
last_end_request in cic is of no use anymore. Get rid of it.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/cfq-iosched.c |4
include/linux/iocontext.h |1 -
2 files
only root group by cgroup itself? Although
there might be
some impact if cgroup is built but no request goes into it. but i think this
isn't a big
deal. How about the following patch?
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c | 21
Vivek Goyal wrote:
On Thu, Jun 11, 2009 at 04:10:55PM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
...
/*
@@ -1296,6 +1302,13 @@ void io_group_chain_link(struct request_queue *q,
void *key,
iog = io_cgroup_lookup_group(iocg, key);
io_group_set_parent(prev, iog
in io.policy handling. IO Controller completely stops
working when i use
this interface.
Make sure that we initialize entity after iog-dev is setting up properly.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c |3 ++-
1 files changed, 2 insertions(+), 1
Vivek Goyal wrote:
On Wed, Jun 10, 2009 at 09:30:38AM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
On Tue, Jun 09, 2009 at 03:56:38PM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
...
+ssize_t elv_fairness_store(struct request_queue *q, const char *name,
+ size_t count
, p, 10);
+
+ if (data 0)
Hi Vivek,
data can never be less than zero. Same problems also exist for other sysfs
entry.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c | 40 +---
block/elevator-fq.h |6 +++---
2 files
Vivek Goyal wrote:
On Tue, Jun 09, 2009 at 12:22:25PM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
Hi All,
Here is the V4 of the IO controller patches generated on top of 2.6.30-rc8.
Hi Vivek,
I can't apply the patchset.
[r...@localhost linux-2.6.30-rc8-Vivek-V4]# git-am ../V4/1.eml
Vivek Goyal wrote:
On Tue, Jun 09, 2009 at 03:56:38PM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
...
+ssize_t elv_fairness_store(struct request_queue *q, const char *name,
+ size_t count)
+{
+ struct elv_fq_data *efqd;
+ unsigned int data;
+ unsigned long
*ioq)
+{
+ return ioq_sample_valid(ioq-ttime_samples);
+}
+
These three functions are dead now, just remove them.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.h | 15 ---
1 files changed, 0 insertions(+), 15 deletions(-)
diff --git a/block
Vivek Goyal wrote:
Hi All,
Here is the V4 of the IO controller patches generated on top of 2.6.30-rc8.
Hi Vivek,
I can't apply the patchset.
[r...@localhost linux-2.6.30-rc8-Vivek-V4]# git-am ../V4/1.eml
Applying io-controller: Documentation
[r...@localhost linux-2.6.30-rc8-Vivek-V4]#
-sched_data;
+ if (extract)
+ entity = bfq_lookup_next_entity(sd, 1);
+ else
+ entity = bfq_lookup_next_entity(sd, 0);
This if and else branch is not needed.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c |5 +
1 files changed
;
+ }
+ }
+
+ elv_init_ioq(e, ioq, iog, sched_q, IOPRIO_CLASS_BE, 4, 1);
It's better to use IOPRIO_NORM here.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c |3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/block/elevator-fq.c b/block/elevator
) {
+ if (elv_ioq_slice_new(ioq)) {
+ elv_ioq_set_prio_slice(q, ioq);
Hi Vivek,
Would you explain a bit why slice_end should be set when first request
completes.
Why not set it just when an ioq gets active?
Thanks.
Gui Jianfeng
Hi Vivek,
Since thinking time logic is moving to common layer, corresponding items
in cic is not needed.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
diff --git a/include/linux/iocontext.h b/include/linux/iocontext.h
index ed52a1f..1fe9d78 100644
--- a/include/linux/iocontext.h
IKEDA, Munehiro wrote:
Hi Gui,
Gui Jianfeng wrote:
Hi Vivek,
This patch enables per-cgroup per-device weight and ioprio_class
handling.
A new cgroup interface policy is introduced. You can make use of
this file to configure weight and ioprio_class for each device in a
given cgroup
Andrea Righi wrote:
On Fri, May 15, 2009 at 01:15:24PM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
...
}
@@ -1462,20 +1462,27 @@ struct io_cgroup *get_iocg_from_bio(stru
/*
* Find the io group bio belongs to.
* If create is set, io group is created if it is not already present
unconditionally.
- Fix policy setup bug when switching to another io scheduler.
- If a policy is available for a specific device, don't update weight and
io class when writing weight and iprio_class.
- Fix a bug when parsing policy string.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block
Vivek Goyal wrote:
On Wed, May 13, 2009 at 10:39:07AM +0800, Gui Jianfeng wrote:
Vivek Goyal wrote:
...
+/*
+ * traverse through all the io_groups associated with this cgroup and
calculate
+ * the aggr disk time received by all the groups on respective disks.
+ */
+static u64
@@ out:
rcu_read_unlock();
return iog;
}
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
Vivek Goyal wrote:
On Wed, May 13, 2009 at 10:00:21AM +0800, Gui Jianfeng wrote:
Hi Vivek,
This patch enables per-cgroup per-device weight and ioprio_class handling.
A new cgroup interface policy is introduced. You can make use of this
file to configure weight and ioprio_class for each
Vivek Goyal wrote:
On Wed, May 13, 2009 at 10:00:21AM +0800, Gui Jianfeng wrote:
[..]
@@ -2137,7 +2366,7 @@ void elv_fq_unset_request_ioq(struct request_queue *q,
struct request *rq)
void bfq_init_entity(struct io_entity *entity, struct io_group *iog)
{
entity-ioprio = entity
] [8100bb2b] system_call_fastpath+0x16/0x1b
Thanks
Vivek
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
Vivek Goyal wrote:
On Wed, May 13, 2009 at 10:00:21AM +0800, Gui Jianfeng wrote:
Hi Vivek,
This patch enables per-cgroup per-device weight and ioprio_class handling.
A new cgroup interface policy is introduced. You can make use of this
file to configure weight and ioprio_class for each
these per device.
Hi Vivek,
Actually, I did it also.
FYI
Examples:
# cat io.disk_time
dev:/dev/hdb time:4421
dev:others time:3741
# cat io.disk_sectors
dev:/dev/hdb sectors:585696
dev:others sectors:2664
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c | 104
();
- return disk_time;
+ cgroup_unlock();
+
+ return 0;
}
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
/hdb 300 2
Remove the policy for /dev/hda in this cgroup
# echo /dev/hda:0:1 io.policy
# cat io.policy
dev weight class
/dev/hdb 300 2
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
block/elevator-fq.c | 239 +-
block/elevator-fq.h
();
+
+ return disk_time;
+}
+
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
___
Devel mailing list
Nauman Rafique wrote:
On Fri, May 8, 2009 at 6:57 AM, Vivek Goyal vgo...@redhat.com wrote:
On Fri, May 08, 2009 at 05:45:32PM +0800, Gui Jianfeng wrote:
Hi Vivek,
This patch adds io group reference handling when allocating
and removing a request.
Hi Gui,
Thanks for the patch. We were
.
Hi Vivek,
I'v tried this patch, and seems the problem is addressed. Thanks.
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
Hi Vivek,
This patch adds io group reference handling when allocating
and removing a request.
Signed-off-by: Gui Jianfeng guijianf...@cn.fujitsu.com
---
elevator-fq.c | 15 ++-
elevator-fq.h |5 +
elevator.c|2 ++
3 files changed, 21 insertions(+), 1 deletion
, efqd-group_list,
+ elv_data_node) {
+ hlist_del(iog-elv_data_node);
+
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman
reference on io group */
We'd better to reset iog-iocg_id here since the cgroup is going to destroy.
+ elv_put_iog(iog);
}
-/**
--
Regards
Gui Jianfeng
___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux
] ? kernel_thread_helper+0x7/0x10
Code: c0 84 c0 74 0e 89 d8 e8 7c e9 fd ff eb 05 bf fd ff ff ff e8 c0 ea ff ff 8
EIP: [c0448c24] cgroup_path+0xc/0x97 SS:ESP 0068:f709fdf0
CR2: 011c
---[ end trace 2d4bc25a2c33e394 ]---
--
Regards
Gui Jianfeng
/group going away. Hopefully in next version they
all should be fixed up. But still, it is nice to hear back...
--
Regards
Gui Jianfeng
inline: rwio.c___
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org
group
+ dispatched to the disk. We provide fairness in terms of disk time, so
+ ideally io.disk_time of cgroups should be in proportion to the weight.
+ (It is hard to achieve though :-)).
--
Regards
Gui Jianfeng
___
Containers mailing list
contain
Andrea Righi wrote:
On Thu, Apr 23, 2009 at 03:53:51PM +0800, Gui Jianfeng wrote:
Andrea Righi wrote:
Together with cgroup_io_throttle() the kiothrottled kernel thread
represents the core of the io-throttle subsystem.
All the writeback IO requests that need to be throttled
Andrea Righi wrote:
On Fri, Apr 24, 2009 at 10:11:09AM +0800, Gui Jianfeng wrote:
Andrea Righi wrote:
Dirty pages in the page cache can be processed asynchronously by kernel
threads (pdflush) using a writeback policy. For this reason the real
writes to the underlying block devices occur
and submit the bunch of selected requests to
the underlying block devices using generic_make_request().
Hi Andrea,
What if an user issues sync, will the bios still be buffered in the rb-tree?
Do we need to flush the whole tree?
--
Regards
Gui Jianfeng
1 - 100 of 132 matches
Mail list logo