* Linus Torvalds <[EMAIL PROTECTED]> wrote: > On Tue, 28 Aug 2007, Al Boldi wrote: > > > > I like your analysis, but how do you explain that these stalls > > vanish when __update_curr is disabled? > > It's entirely possible that what happens is that the X scheduling is > just a slightly unstable system - which effectively would turn a small > scheduling difference into a *huge* visible difference.
i think it's because disabling __update_curr() in essence removes the ability of scheduler to preempt tasks - that hack in essence results in a non-scheduler. Hence the gears + X pair of tasks becomes a synchronous pair of tasks in essence - and thus gears cannot "overload" X. Normally gears + X is an asynchronous pair of tasks, with gears (or xperf, or devel versions of firefox, etc.) not being throttled at all and thus being able to overload/spam the X server with requests. (And we generally want to _reward_ asynchronity and want to allow tasks to overlap each other and we want each task to go as fast and as parallel as it can.) Eventually X's built-in "bad, abusive client" throttling code kicks in, which, AFAIK is pretty crude and might yield to such artifacts. But ... it would be nice for an X person to confirm - and in any case i'll try Al's workload - i thought i had a reproducer but i barked up the wrong tree :-) My laptop doesnt run with the vesa driver, so i have no easy reproducer for now. ( also, it would be nice if Al could try rc4 plus my latest scheduler tree as well - just on the odd chance that something got fixed meanwhile. In particular Mike's sleeper-bonus-limit fix could be related. ) Ingo - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/