On 12/17/2010 08:56 AM, Mike Galbraith wrote:
> Surely that makes it a reasonable idea to call yield, and
> get one of the other tasks on the current CPU running for
> a bit?
There's nothing wrong with trying to give up the cpu. It's the concept
of a cross cpu yield_to() that I find mighty strange.
What's so strange about it? From a high level there are N runnable
tasks contending for M cpus. If task X really needs task Y to run, what
does it matter if task Y last ran on the same cpu as task X or not?
Do I correctly read between the lines that CFS maintains complete
fairness only on a cpu, but not globally? I hope I'm wrong, but
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ P COMMAND
8648 avi 20 0 106m 1092 148 R 80.4 0.0 0:26.03 1 bash
8656 avi 20 0 106m 1080 136 R 47.3 0.0 0:14.73 0 bash
8652 avi 20 0 106m 1080 136 R 47.0 0.0 0:15.36 0 bash
doesn't look too good (three infinite loops in bash started at the
roughly same time)
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
--
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