Threading issues? [ck-request@vds.kolivas.org: ck Digest, Vol 3, Issue 16]

Ove Kaaven ovek at arcticnet.no
Sun Aug 29 18:13:37 CDT 2004


søn, 29.08.2004 kl. 13.31 skrev Mike Hearn:
> On Sun, 29 Aug 2004 09:51:30 +0200, Ove Kaaven wrote:
> > A book I have described how it works...
> 
> Hi Ove,
> 
> I remember TransGaming had some problems with kernel 2.6 scheduling: did
> you guys ever get to the bottom of it?

Not in detail, we still consider 2.6 too unstable to support the use of,
but the problem is probably related to what's being discussed here,
which is why I'm interested.

One interesting problem we've seen is the one of wineserver using a
whole lot more CPU now than before. A scenario where this could happen
is if the game has a relatively low-priority thread which gets to do a
lot of waits on critical sections, and some high-priority threads that
does interesting stuff, also usually holding those critical sections, so
there's always contention. The game might not care much exactly how
often the low-priority thread gets scheduled, as long as the resource
protected by the critical section is not in use whenever it does get
scheduled (which it probably usually isn't if the Win32 thread priority
system is used).

Well, my theory is that in this situation, with the great new
interactivity-boosting Linux scheduler, the wineserver is considered
very interactive, and gets scheduled a lot more than the high-priority
threads, just so it can satisfy the wait requests of the low-priority
thread.

This particular situation is a problem which the shared-memory
wineserver we have in Cedega now should help somewhat against, I
suppose, but that probably doesn't make this problem less interesting
for you.

And of course there are threads we use that gets penalized a lot. For
example, the DirectSound mixing thread would by no means be considered
interactive by the scheduler. We would love to elevate the priority of
this thread, for example, but it's not possible because of permissions.

> What are you recommending your
> users do if not?

There's now an option in Point2Play to renice the wineserver to a lower
priority if you need to. I'm hoping this thread can help bring answers
to the other issues with the scheduler...





More information about the wine-devel mailing list