Users with native w2k/wxp/Vista/w7, please test (CreateTimerQueue)

Jerome Leclanche adys.wh at gmail.com
Tue Mar 6 12:29:13 CST 2012


Jörg, do you need more tests? I have a W7 home premium 32bit laptop I can
boot.

J. Leclanche


On Tue, Mar 6, 2012 at 4:37 PM, Maarten Lankhorst
<m.b.lankhorst at gmail.com>wrote:

> Hey Joerg,
>
> Op 06-03-12 11:21, Joerg-Cyril.Hoehle at t-systems.com schreef:
> > Hi,
> >
> > If you can run MS-Windows without virtual machine, please visit testbot
> > https://testbot.winehq.org/JobDetails.pl?Key=17175
> > download the 32 or 64bit executable and execute it.
> >
> > I can't really trust vm machines for timing, but so far it appears that:
> >
> > - Vista/w2k8SE/w7 perform rate correction so as to maintain an average
> number of callbacks
> > sync.c:583: TimerQueue period 10ms with 0 stress, flags 0
> > sync.c:558: thread 1340 hpctime   30 delta 15
> > sync.c:558: thread 1340 hpctime   46 delta 16
> > sync.c:558: thread 1340 hpctime   46 delta  0
> > sync.c:601: 80 callbacks within 796/800ms, avg 9.950/10
> >
> > They'll refire with up to 0 wait upon noticing that it's very late!
> >
> > sync.c:583: TimerQueue period 10ms with 7 stress, flags 10
> > sync.c:558: thread 1340 hpctime   46 delta 15
> > sync.c:570: thread 1340 busy 7ms
> > sync.c:558: thread 1340 hpctime   53 delta  7
> > sync.c:570: thread 1340 busy 7ms
> > sync.c:558: thread 1340 hpctime   62 delta  9
> > sync.c:570: thread 1340 busy 7ms
> > sync.c:558: thread 1340 hpctime   77 delta 15
> > sync.c:570: thread 1340 busy 7ms
> > sync.c:558: thread 1340 hpctime   84 delta  7
> > sync.c:570: thread 1340 busy 7ms
> > sync.c:601: 59 callbacks within 607/600ms, avg 10.288/10
> >
> > It maintains its average even the callback is busy for 7ms within each
> 10ms interval.
> >
> > sync.c:583: TimerQueue period 10ms with 12 stress, flags 20
> > sync.c:558: thread 828 hpctime   31 delta 12
> > sync.c:570: thread 828 busy 12ms
> > sync.c:558: thread 828 hpctime   43 delta 12
> > sync.c:570: thread 828 busy 12ms
> > sync.c:601: 42 callbacks within 507/400ms, avg 12.071/10
> >
> > This one surprises me. No multiple threads are used. Wine uses several
> > threads here. When every callback is busy for 12ms, MS does not reach
> > an average 10ms per invocation, whereas Wine does, thanks to several
> > threads that execute the callbacks concurrently.
> >
> > I want to figure out why several threads were not used.
> >
> > sync.c:601: 40 callbacks within 4624/4680ms, avg 115.600/117
> > Ok. Note that the average is usually slightly lower than expected, simply
> > because the first callback is asked to fire at time period/2.
> >
> > - w2k/xp do not maintain an average (at least on testbot)
> > sync.c:583: TimerQueue period 10ms with 0 stress, flags 0
> > sync.c:558: thread 836 hpctime   30 delta 15
> > sync.c:558: thread 836 hpctime   46 delta 16
> > sync.c:601: 51 callbacks within 796/800ms, avg 15.608/10
> >
> > So at least in testbot, the minimum rate is the well-known 15.625ms
> interval.
> > Note that the 15.625ms is visible in the w7 testbot results too.
> >
> > sync.c:583: TimerQueue period 117ms with 0 stress, flags 20
> > sync.c:558: thread 840 hpctime  311 delta 125
> > sync.c:558: thread 840 hpctime  436 delta 125
> > sync.c:601: 37 callbacks within 4561/4680ms, avg 123.270/117
> >
> > Unlike w7, it never corrects to a smaller interval like 109ms to reach
> > the requested average of 117ms.
> >
> > This is good news for audio in Wine, because we can make
> > CreateTimerQueue mimic Vista/w2k8/w7 behaviour to give us a stable rate
> (on average).
> >
> > The logs are quite long, you can send me them per e-mail.
> >
> > Thank you,
> >  Jörg Höhle
> >
> Have you tried changing the resolution with timeBeginPeriod? Supposedly
> affects those too..
>
> ~Maarten
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20120306/c03865ce/attachment.html>


More information about the wine-devel mailing list