Re: [PATCH RFC 10/22] block, bfq: add full hierarchical scheduling and cgroups support

From: Paolo Valente
Date: Sat Apr 23 2016 - 03:08:27 EST



Il giorno 22/apr/2016, alle ore 21:32, Tejun Heo <tj@xxxxxxxxxx> ha scritto:

> Hello, Paolo.
>
> On Fri, Apr 22, 2016 at 09:05:14PM +0200, Paolo Valente wrote:
>>> Ah, right, I was confused. cic is always associated with the task and
>>> yes a writeback worker can trigger blkcg changed events frequently as
>>> it walks through different cgroups. Is this an issue?
>>
>> That’s exactly the source of my confusion: why does the worker walk
>> through different cgroups all the time if the I/O is originated by
>> the same process, which never changes group?
>
> Because the workqueue workers aren't tied to individual workqueues,
> they wander around serving different workqueues.

There is certainly something I don’t know here, because I don’t understand why there is also a workqueue containing root-group I/O all the time, if the only process doing I/O belongs to a different (sub)group.

Anyway, if this is expected, then there is no reason to bother you further on it. In contrast, the actual problem I see is the following. If one third or half of the bios belong to a different group than the writer that one wants to isolate, then, whatever weight is assigned to the writer group, we will never be able to let the writer get the desired share of the time (or of the bandwidth with bfq and all quasi-sequential workloads). For instance, in the scenario that you told me to try, the writer will never get 50% of the time, with any scheduler. Am I missing something also on this?

Thanks,
Paolo

> This might change if
> we eventually update workqueues to be cgroup aware but for now it's
> expected to happen.
>
> Thanks.
>
> --
> tejun