On Fri, Jun 5, 2009 at 4:32 AM, Srivatsa Vaddagiri<vatsa@xxxxxxxxxx> wrote: > > I think the interval over which we need guarantee matters here. Shares > can generally provide guaranteed share of resource over longer (sometimes > minutes) intervals. For high-priority bursty workloads, the latency in > achieving guaranteed resource usage matters. Well yes, it's true that you *could* just enforce shares over a granularity of minutes, and limits over a granularity of milliseconds. But why would you? It could well make sense that you can adjust the granularity over which shares are enforced - e.g. for batch jobs, only enforcing over minutes or tens of seconds might be fine. But if you're doing the fine-grained accounting and scheduling required for the tight hard limit enforcement, it doesn't seem as though it should be much harder to enforce shares at the same granularity for those cgroups that matter. In fact I thought that's what CFS already did - updated the virtual time accounting at each context switch, and picked the runnable child with the oldest virtual time. (Maybe someone like Ingo or Peter who's more familiar than I with the CFS implementation could comment here?) > By having hard-limits, we are > "reserving" (potentially idle) slots where the high-priority group can run and > claim its guaranteed share almost immediately. But you can always create an "idle" slot by forcibly preempting whatever's running currently when you need to - you don't need to keep the CPU deliberately idle just in case a cgroup with a guarantee wakes up. Paul -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html