Re: [PATCH V2 00/10] unify the interface of the proportional-share policy in blkio/io

From: Paolo Valente
Date: Tue Dec 18 2018 - 02:48:17 EST


> Il giorno 10 dic 2018, alle ore 14:45, Angelo Ruocco <angelo.ruocco.90@xxxxxxxxx> ha scritto:
> 2018-11-30 19:53 GMT+01:00, Paolo Valente <paolo.valente@xxxxxxxxxx>:
>>> Il giorno 30 nov 2018, alle ore 19:42, Tejun Heo <tj@xxxxxxxxxx> ha
>>> scritto:
>>> Hello, Paolo.
>>> On Fri, Nov 30, 2018 at 07:23:24PM +0100, Paolo Valente wrote:
>>>>> Then we understood that exactly the same happens with throttling, in
>>>>> case the latter is activated on different devices w.r.t. bfq.
>>>>> In addition, the same may happen, in the near future, with the
>>>>> bandwidth controller Josef is working on. If the controller can be
>>>>> configured per device, as with throttling, then statistics may differ,
>>>>> for the same interface files, between bfq, throttling and that
>>>>> controller.
>>> So, regardless of how all these are implemented, what's presented to
>>> user should be consistent and clear. There's no other way around it.
>>> Only what's relevant should be visible to userspace.
>>>> have you had time to look into this? Any improvement to this
>>>> interface is ok for us. We are only interested in finally solving this
>>>> interface issue, as, for what concerns us directly, it has been
>>>> preventing legacy code to use bfq for years.
>>> Unfortunately, I don't have any implementation proposal, but we can't
>>> show things this way to userspace.
>> Well, this is not very helpful to move forward :)
>> Let me try to repeat the problem, to try to help you help us unblock
>> the situation.
>> If we have multiple entities attached to the same interface output
>> file, you don't find it clear that each entity shows the number it
>> wants to show. But you have no idea either of how that differentiated
>> information should be shown. Is this the situation, or is the problem
>> somewhere 'above' this level?
>> If the problem is as I described it, here are some proposal attempts:
>> 1) Do you want file sharing to be allowed only if all entities will
>> output the same number? (this seems excessive, but maybe it makes
>> sense)
>> 2) Do you want only one number to be shown, equal to the sum of the
>> numbers of each entity? (in some cases, this may make sense)
>> 3) Do you prefer an average?
>> 4) Do you have any other idea, even if just germinal?
> To further add to what Paolo said and better expose the problem, I'd like to
> say that all those proposals have issues.
> If we only allow "same output" cftypes to be shared then we lose all the
> flexibility of this solution, and we need a way for an entity to know other
> entities internal variables beforehand, which sounds at least very hard, and
> maybe is not even an acceptable thing to do.
> To put the average, sum or some other mathematical function in the file only
> makes sense for certain cftypes, so also doesn't sound like a good idea. In
> fact I can think of scenarios where only seeing the different values of the
> entities makes sense for a user.
> I understand that the problem is inconsistency: having a file that behaves
> differently depending on the situation, and the only way to prevent this I can
> think of is to *always* show the entity owner of a certain file (or part of the
> output), even when the output would be the same among entities or when the
> file is not currently shared but could be. Can this be an acceptable solution?
> Angelo

Hi Jens, all,
let me push for this interface to be fixed too. If we don't fix it in
some way, then from 4.21 we well end up with a ridiculous paradox: the
proportional share policy (weights) will of course be available, but
unusable in practice. In fact, as Lennart--and not only Lennart--can
confirm, no piece of code uses bfq.weight to set weights, or will do

A trivial solution would be to throw away all our work to fix this
issue by extending the interface, and just let bfq use the former cfq
names. But then the same mess will happen as, e.g., Josef will
propose his proportional-share controller.

Before making this solution, we proposed it and waited for it to be
approved several months ago, so I hope that Tejun concern can be
addressed somehow.

If Tejun cannot see any solution to his concern, then can we just
switch to this extension, considering that
- for non-shared names the interface is *identical* to the current
- by using this new interface, and getting feedback we could
understand how to better handle Tejun's concern?

A lot of systems do use weights, and people don't even know that these
systems don't work correctly in blk-mq. And they won't work correctly
in any available configuration from 4.21, if we don't fix this problem.


>> Looking forward to your feedback,
>> Paolo
>>> Thanks.
>>> --
>>> tejun
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "bfq-iosched" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to bfq-iosched+unsubscribe@xxxxxxxxxxxxxxxxx
>>> For more options, visit