Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1332409 > unrolled thread
| Started by | Tejun Heo <tj@kernel.org> |
|---|---|
| First post | 2016-02-11 23:30 +0100 |
| Last post | 2016-02-17 18:50 +0100 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH RFC 10/22] block, bfq: add full hierarchical scheduling and cgroups support Tejun Heo <tj@kernel.org> - 2016-02-11 23:30 +0100
Re: [PATCH RFC 10/22] block, bfq: add full hierarchical scheduling and cgroups support Paolo Valente <paolo.valente@linaro.org> - 2016-02-17 10:10 +0100
Re: [PATCH RFC 10/22] block, bfq: add full hierarchical scheduling and cgroups support Tejun Heo <tj@kernel.org> - 2016-02-17 18:20 +0100
Re: [PATCH RFC 10/22] block, bfq: add full hierarchical scheduling and cgroups support Tejun Heo <tj@kernel.org> - 2016-02-17 18:50 +0100
| From | Tejun Heo <tj@kernel.org> |
|---|---|
| Date | 2016-02-11 23:30 +0100 |
| Subject | Re: [PATCH RFC 10/22] block, bfq: add full hierarchical scheduling and cgroups support |
| Message-ID | <r17Un-6Bj-29@gated-at.bofh.it> |
Hello, On Mon, Feb 01, 2016 at 11:12:46PM +0100, Paolo Valente wrote: > From: Arianna Avanzini <avanzini.arianna@gmail.com> > > Complete support for full hierarchical scheduling, with a cgroups > interface. The name of the added policy is bfq. > > Weights can be assigned explicitly to groups and processes through the > cgroups interface, differently from what happens, for single > processes, if the cgroups interface is not used (as explained in the > description of the previous patch). In particular, since each node has > a full scheduler, each group can be assigned its own weight. * It'd be great if how cgroup support is achieved is better documented. * How's writeback handled? * After all patches are applied, both CONFIG_BFQ_GROUP_IOSCHED and CONFIG_CFQ_GROUP_IOSCHED exist. * The default weight and weight range don't seem to follow the defined interface on the v2 hierarchy. The default value should be 100. * With all patches applied, booting triggers a RCU context warning. Please build with lockdep and RCU debugging turned on and fix the issue. * I was testing on the v2 hierarchy with two top-level cgroups one hosting sequential workload and the other completely random. While they eventually converged to a reasonable state, starting up the sequential workload while the random workload was running was extremely slow. It crawled for quite a while. * And "echo 100 > io.weight" hung the writing process. Thanks. -- tejun
[toc] | [next] | [standalone]
| From | Paolo Valente <paolo.valente@linaro.org> |
|---|---|
| Date | 2016-02-17 10:10 +0100 |
| Subject | Re: [PATCH RFC 10/22] block, bfq: add full hierarchical scheduling and cgroups support |
| Message-ID | <r36hs-4dm-11@gated-at.bofh.it> |
| In reply to | #1332409 |
Il giorno 11/feb/2016, alle ore 23:28, Tejun Heo <tj@kernel.org> ha scritto: > Hello, > > On Mon, Feb 01, 2016 at 11:12:46PM +0100, Paolo Valente wrote: >> From: Arianna Avanzini <avanzini.arianna@gmail.com> >> >> Complete support for full hierarchical scheduling, with a cgroups >> interface. The name of the added policy is bfq. >> >> Weights can be assigned explicitly to groups and processes through the >> cgroups interface, differently from what happens, for single >> processes, if the cgroups interface is not used (as explained in the >> description of the previous patch). In particular, since each node has >> a full scheduler, each group can be assigned its own weight. > > * It'd be great if how cgroup support is achieved is better > documented. > ok, I will do it. > * How's writeback handled? > If I understood correctly your question, then the answer is that there is no special/automatic handling of writeback queues. Thus, unless the user explicitly inserts flushing threads in some groups and plays with the weights of these groups, these threads will just get the default weight, and thus the default treatment for queues in the root group. IOW, no privileges. The motivation is that these threads serve asynchronous requests, i.e., requests that do not cause any delay to the processes that issue them. Therefore, apart from higher-level considerations on vm page-flushing pressure, there is basically no point in privileging writeback I/O with respect to other types of possibly time-sensitive I/O. > * After all patches are applied, both CONFIG_BFQ_GROUP_IOSCHED and > CONFIG_CFQ_GROUP_IOSCHED exist. > Sorry, thanks. > * The default weight and weight range don't seem to follow the defined > interface on the v2 hierarchy. The default value should be 100. > Sorry again, I will fix it. > * With all patches applied, booting triggers a RCU context warning. > Please build with lockdep and RCU debugging turned on and fix the > issue. > Ok, I will do it. > * I was testing on the v2 hierarchy with two top-level cgroups one > hosting sequential workload and the other completely random. While > they eventually converged to a reasonable state, starting up the > sequential workload while the random workload was running was > extremely slow. It crawled for quite a while. > This is definitely a bug. Could you please (maybe privately?) send me the exact commands/script you have used? > * And "echo 100 > io.weight" hung the writing process. > I’m not sure I understood exactly which process you are referring to, but I guess I will probably understand it from the commands I have asked you to share. Thanks, Paolo > Thanks. > > -- > tejun
[toc] | [prev] | [next] | [standalone]
| From | Tejun Heo <tj@kernel.org> |
|---|---|
| Date | 2016-02-17 18:20 +0100 |
| Message-ID | <r3dVF-14C-15@gated-at.bofh.it> |
| In reply to | #1336154 |
Hello, On Wed, Feb 17, 2016 at 10:07:16AM +0100, Paolo Valente wrote: > > * How's writeback handled? > > If I understood correctly your question, then the answer is that > there is no special/automatic handling of writeback queues. Thus, > unless the user explicitly inserts flushing threads in some groups > and plays with the weights of these groups, these threads will just > get the default weight, and thus the default treatment for queues in > the root group. IOW, no privileges. The motivation is that these > threads serve asynchronous requests, i.e., requests that do not > cause any delay to the processes that issue them. Therefore, apart > from higher-level considerations on vm page-flushing pressure, there > is basically no point in privileging writeback I/O with respect to > other types of possibly time-sensitive I/O. So, under cgroup v2, writeback traffic is associated correctly with the cgroup which caused it. It's not about privileging writeback IOs but ensuring that they're correctly attributed and proportinally controlled according to the configuration. It seemed that this was working with bfq but it'd be great if you can test and confirm it. Please read the writeback section in Documentation/cgroup-v2.txt. > > * I was testing on the v2 hierarchy with two top-level cgroups one > > hosting sequential workload and the other completely random. While > > they eventually converged to a reasonable state, starting up the > > sequential workload while the random workload was running was > > extremely slow. It crawled for quite a while. > > This is definitely a bug. Could you please (maybe privately?) send > me the exact commands/script you have used? Oh I see. I did something like the following. 1. mkdir cgroup-v2 2. mount -t cgroup2 none cgroup-v2 3. cd cgroup-v2; mkdir asdf fdsa 4. echo +memory +io > cgroup.subtree_control 5. echo 16M > asdf/memory.high; echo 16M > fdsa/memory.high A-1. echo $$ > asdf/cgroup.procs A-2. test-rawio.c $DEV 8 16 B-1. echo $$ > fdsa/cgroup.procs B-2. dd if=/dev/zero of=$TESTFILE_ON_DEV bs=1M > > * And "echo 100 > io.weight" hung the writing process. > > I’m not sure I understood exactly which process you are referring > to, but I guess I will probably understand it from the commands I > have asked you to share. Oh, I ran "echo 100 > asdf/io.weight" after running the above test and the echoing process just got stuck in the kernel. I haven't really investigated it but it seemed pretty easy to reproduce. If you can't reproduce it easily, please let me know. I'll try to dig in. Thanks. -- tejun
[toc] | [prev] | [next] | [standalone]
| From | Tejun Heo <tj@kernel.org> |
|---|---|
| Date | 2016-02-17 18:50 +0100 |
| Message-ID | <r3eoF-1gj-1@gated-at.bofh.it> |
| In reply to | #1336591 |
[Multipart message — attachments visible in raw view] — view raw
Hello, again. I forgot to cc the source code for the following. > A-2. test-rawio.c $DEV 8 16 It's a simple program which issues random IOs to the raw device. The above will issue 16 concurrent 4k IOs. Thanks. -- tejun
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web