Re: [patch 00/18] CFS Bandwidth Control v7.2

From: Paul Turner
Date: Fri Sep 16 2011 - 04:07:20 EST


Hi Vladimir,

I had a fairly good coversation with Pavel at LPC regarding these questions, it's probably worth syncing up with him and then following up if you still have questions.


On 09/13/11 05:10, Vladimir Davydov wrote:
Hello, Paul

I have a question about CFS bandwidth control.

Let's consider a cgroup with several (>1) tasks running on a two CPU
host. Let the limit of the cgroup be 50% (e.g. period=1s, quota=0.5s).
How will tasks of the cgroup be distributed between the two CPUs? Will
they all run on one of the CPUs, or will one half of them run on one CPU
and others run on the other?


Parallelism is unconstrained until the bandwidth limit is reached, at which point we CONFIG_NR_CPUS=0

Although in both cases the tasks will consume not more than one half of
overall CPU time, the first case (all tasks of the cgroup run on the
same CPU) is obviously better if the tasks are likely to communicate
with each other (e.g. through pipe) which is often the case when cgroups
are used for container virtualization.


This case is handled already by the affine wake-up path.

In other words, I'd like to know if your code (or the scheduler code)
tries to gather all tasks of the same cgroup on such a subset of all
CPUs so that the tasks can't execute less CPUs without losing quota
during each period. And if not, are you going to address the issue?


Parallelism != Bandwidth; no plans at this time.

Thanks!

- Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/