[Bug 3845] parallel port access is slow due to high cpu usage (eprom burner )

wine-bugs at winehq.org wine-bugs at winehq.org
Sun May 4 05:58:45 CDT 2008


http://bugs.winehq.org/show_bug.cgi?id=3845


Ondrej Zary <linux at rainbow-software.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |linux at rainbow-software.org




--- Comment #7 from Ondrej Zary <linux at rainbow-software.org>  2008-05-04 05:58:42 ---
I have the same problem with Willem EPROM programmer. No wonder it's so slow
when you look at Wine parport code - for each port access, massive amount code
is run:

1. DOSVM_outport()
http://source.winehq.org/source/dlls/winedos/ioports.c#L501
this fortunately calls IO_pp_outp() early

2. IO_pp_outp()
http://source.winehq.org/source/dlls/winedos/ppdev.c#L295
this loops over all parport devices, changes data direction (in some cases) and
calls IO_pp_do_access()

3. IO_pp_do_access()
http://source.winehq.org/source/dlls/winedos/ppdev.c#L234
this claims the port, does the in/out and releases it again


I guess that claim/release in (3) can be eliminated (just claim it on first
access and never release as I doubt that anyone wants other applications to
mess with parallel port during EPROM programming).

The for loop in 2 could be probably improved somehow. Changing the data
direction might not be needed always, depending on previous access (but I don't
know parallel port programming details in Linux).


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list