RFC: client side implementation of async I/O

Michael McCormack mccormac at aals27.alcatel.com.au
Sat Mar 10 22:06:24 CST 2001


Hi Alexandre,

i have rewritten my patch for the latest wine release. The main changes from
the previous are that it only checks overlapped operations in
WaitForMultipleObjectswEx, and it now uses SetEvent to end the operation.
(courtesy of your new servercall architecture). I have done a simple
benchmark. The results of the benchmark on my Pii350 and an internal modem 
are as follows:

Wine 2001/03/05 vanilla + async-fix.diff:
average write time for "AT" command:  675 usec
average read time for response:  634 usec

Wine 2001/03/05 + client-async3.diff:
average write time for "AT" command: 362 usec
average read time for response: 322 usec

The times in themselves are pretty meaningless, but it is the same program,
under the same conditions.

The patches and program i used are included.

Mike

On Tue, 6 Mar 2001, Alexandre Julliard wrote:

> Michael McCormack <mccormac at aals27.alcatel.com.au> writes:
> 
> > The patch can be further optimised, for example by keeping active asyncs in a
> > seperate list from inactive asyncs. i think it is more efficient because the
> > number of server calls and context switches is reduced.
> 
> Reducing the number of server calls but making them more expensive is
> not necessarily a gain. Show me the numbers...

-- 

__________________________________________________________________
mailto:Michael.McCormack at alcatel.com.au  phone: (+8232) 667 0425 (h)
                                                (+8211) 430 0425 (m)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: client-async3.diff.gz
Type: application/octet-stream
Size: 9303 bytes
Desc: 
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20010311/16c8053a/client-async3.diff.obj
-------------- next part --------------
diff -ur wine-20010305/server/async.c wine-20010305-mod/server/async.c
--- wine-20010305/server/async.c	Mon Jan  8 06:46:17 2001
+++ wine-20010305-mod/server/async.c	Sun Mar 11 10:30:13 2001
@@ -217,6 +217,7 @@
 
     req->ov_handle = alloc_handle( current->process, ov, GENERIC_READ|GENERIC_WRITE, 0 );
 
+    release_object(ov);
     release_object(obj);
 }
 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: asynctest.tar.gz
Type: application/octet-stream
Size: 1831 bytes
Desc: 
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20010311/16c8053a/asynctest.tar.obj


More information about the wine-devel mailing list