Messages in this thread | | | Date | Fri, 16 Sep 2011 01:06:47 -0700 | From | Paul Turner <> | Subject | Re: [patch 00/18] CFS Bandwidth Control v7.2 |
| |
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
| |