[wdmaudiodev] Slow string debug output from multiprocessor systems

  • From: Eugene Muzychenko <eugene@xxxxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 7 Nov 2011 22:40:04 +0700

Hello!

Using VM kernel debugging (VMware/VBox) with WinDbg and VirtualKD
(virtualkd.sysprogs.org), I noticed that string debug output
(DbgPrint/OutputDebugString) from multiprocessor Windows is VERY slow
(no more than a hundred of 64-character messages per second). If I
changed Windows mode to uniprocessor (for example, by adding ONECPU
option), string output speed is dramatically increased (thousands of
messages per second).

I thought that is VirtualKD problem but today I ran a test on hardware
XP and Win7 targets connected via 1394 and got exactly the same results. A very
simple program that executes OutputDebugString with a static
64-character string in a single thread, demonstrated 220 microseconds
per line in uniprocessor mode and 12 milliseconds per line in default
two-processor mode (target CPU was Core 2 Duo T8300).

I'm afraid Windows uses a kind of all-CPU synchronization method for
string output. Does somebody know the details? And is there a way to
speed-up string output from multiprocessor systems?

With 2k/XP targets, I use DebugView from Sysinternals with "Pass
through" option disabled. It allows to intercept all string output in
the local system. But in Vista/Win7, DebugView uses a different
interception algorithm that does not allow to prevent strings from
sending to a remote debugger.

Regards,
Eugene

******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/

Other related posts:

  • » [wdmaudiodev] Slow string debug output from multiprocessor systems - Eugene Muzychenko