google.com/codesearch is your friend. Really,
yes, and that's the core point.
firstly, there's no notion of "timeslices" in CFS. (in CFS tasks "earn"
a right to the CPU, and that "right" is not sliced in the traditional
sense) But we tried a conceptually similar thing: to schedule not to the
end of the tree but into the next position. That too was bad for _some_
apps. CFS literally cycled through 5-6 different yield implementations
in its 22 versions so far. The current flag solution was achieved in
such an iterative fashion and gives an acceptable solution to all app
categories that came up so far. [ and this is driven by compatibility
goals - regardless of how broken we consider yield use. The ideal
solution is of course to almost never use yield. Fortunately 99%+ of
Linux apps follow that ideal solution ;-) ]
Ingo
-