Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1621798
| From | Paolo Valente <paolo.valente@linaro.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH V3 02/16] block, bfq: add full hierarchical scheduling and cgroups support |
| Date | 2017-04-12 07:30 +0200 |
| Message-ID | <tvj0S-uP-17@gated-at.bofh.it> (permalink) |
| References | <tv4lb-7FU-3@gated-at.bofh.it> <tv4ld-7FU-37@gated-at.bofh.it> <tvbPH-471-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
> Il giorno 11 apr 2017, alle ore 23:47, Tejun Heo <tj@kernel.org> ha scritto: > > Hello, > > On Tue, Apr 11, 2017 at 03:43:01PM +0200, Paolo Valente wrote: >> From: Arianna Avanzini <avanzini.arianna@gmail.com> >> >> Add complete support for full hierarchical scheduling, with a cgroups >> interface. Full hierarchical scheduling is implemented through the >> 'entity' abstraction: both bfq_queues, i.e., the internal BFQ queues >> associated with processes, and groups are represented in general by >> entities. Given the bfq_queues associated with the processes belonging >> to a given group, the entities representing these queues are sons of >> the entity representing the group. At higher levels, if a group, say >> G, contains other groups, then the entity representing G is the parent >> entity of the entities representing the groups in G. >> >> Hierarchical scheduling is performed as follows: if the timestamps of >> a leaf entity (i.e., of a bfq_queue) change, and such a change lets >> the entity become the next-to-serve entity for its parent entity, then >> the timestamps of the parent entity are recomputed as a function of >> the budget of its new next-to-serve leaf entity. If the parent entity >> belongs, in its turn, to a group, and its new timestamps let it become >> the next-to-serve for its parent entity, then the timestamps of the >> latter parent entity are recomputed as well, and so on. When a new >> bfq_queue must be set in service, the reverse path is followed: the >> next-to-serve highest-level entity is chosen, then its next-to-serve >> child entity, and so on, until the next-to-serve leaf entity is >> reached, and the bfq_queue that this entity represents is set in >> service. >> >> Writeback is accounted for on a per-group basis, i.e., for each group, >> the async I/O requests of the processes of the group are enqueued in a >> distinct bfq_queue, and the entity associated with this queue is a >> child of the entity associated with the group. >> >> 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. > > Can we please hold off on cgroup support for now? I've been trying to > chase down cpu scheduler latency issues lately and have some doubts > about implementing cgroup support by simply nesting the timelines like > this. > Hi Tejun, could you elaborate a bit more on this? I mean, cgroups support has been in BFQ (and CFQ) for almost ten years, perfectly working as far as I know. Of course it is perfectly working in terms of I/O and not of CPU bandwidth distribution; and, for the moment, it is effective only for devices below 30-50KIOPS. What's the point in throwing (momentarily?) away such a fundamental feature? What am I missing? Thanks, Paolo > Thanks > > -- > tejun
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH V3 00/16] Introduce the BFQ I/O scheduler Paolo Valente <paolo.valente@linaro.org> - 2017-04-11 15:50 +0200
[PATCH V3 12/16] block, bfq: boost the throughput on NCQ-capable flash-based devices Paolo Valente <paolo.valente@linaro.org> - 2017-04-11 15:50 +0200
[PATCH V3 11/16] block, bfq: reduce idling only in symmetric scenarios Paolo Valente <paolo.valente@linaro.org> - 2017-04-11 15:50 +0200
[PATCH V3 03/16] block, bfq: improve throughput boosting Paolo Valente <paolo.valente@linaro.org> - 2017-04-11 15:50 +0200
[PATCH V3 09/16] block, bfq: reduce latency during request-pool saturation Paolo Valente <paolo.valente@linaro.org> - 2017-04-11 15:50 +0200
Re: [PATCH V3 00/16] Introduce the BFQ I/O scheduler Bart Van Assche <Bart.VanAssche@sandisk.com> - 2017-04-11 16:40 +0200
Re: [PATCH V3 00/16] Introduce the BFQ I/O scheduler Paolo Valente <paolo.valente@linaro.org> - 2017-04-11 19:40 +0200
Re: [PATCH V3 00/16] Introduce the BFQ I/O scheduler Bart Van Assche <Bart.VanAssche@sandisk.com> - 2017-04-11 20:40 +0200
Re: [PATCH V3 00/16] Introduce the BFQ I/O scheduler Paolo Valente <paolo.valente@linaro.org> - 2017-04-12 08:10 +0200
Re: [PATCH V3 00/16] Introduce the BFQ I/O scheduler Bart Van Assche <Bart.VanAssche@sandisk.com> - 2017-04-12 17:40 +0200
Re: [PATCH V3 00/16] Introduce the BFQ I/O scheduler Paolo Valente <paolo.valente@linaro.org> - 2017-04-12 18:10 +0200
Re: [PATCH V3 02/16] block, bfq: add full hierarchical scheduling and cgroups support Tejun Heo <tj@kernel.org> - 2017-04-11 23:50 +0200
Re: [PATCH V3 02/16] block, bfq: add full hierarchical scheduling and cgroups support Paolo Valente <paolo.valente@linaro.org> - 2017-04-12 07:30 +0200
Re: [PATCH V3 02/16] block, bfq: add full hierarchical scheduling and cgroups support Tejun Heo <tj@kernel.org> - 2017-04-18 09:10 +0200
Re: [PATCH V3 02/16] block, bfq: add full hierarchical scheduling and cgroups support Paolo Valente <paolo.valente@linaro.org> - 2017-04-19 07:40 +0200
Re: [PATCH V3 02/16] block, bfq: add full hierarchical scheduling and cgroups support Paolo Valente <paolo.valente@linaro.org> - 2017-04-19 09:10 +0200
Re: [PATCH V3 00/16] Introduce the BFQ I/O scheduler Heinz Diehl <htd+ml@fritha.org> - 2017-04-16 10:20 +0200
csiph-web