A
Alexander Arlievsky
We are developing an application that involves a PCI driver to a DSP card
that generates data at high rates (over 40 interrupts/sec, about 3MB/sec).
We use WinDriver for the driver (no kernel plugin) - and we allocate a user
buffer for dma operations (continuous mode dma(, we then copy the data from
this buffer to an application buffer (all done in user mode).
Running this driver and checking CPU load we get 15% (on a P4 2.4GHz, 1GB
RAM).
The GUI part of the application draws the received data on screen. Running
just the GUI part (without interrupts from the driver, using simulated data)
we get ~2% CPU load.
Now, here's the problem:
When we combine the 2 parts of the application (GUI & driver) we get a CPU
load of 40%!!!
Any idea on how come 2%GUI + 15%driver result in 40%?
We checked many performance counters, and noticed that the page fault
counter is extremely high at about 13000 per sec. We tried running the
system without a page file but received the same results.
P.S.
Our application includes C,Managed C++ and C# modules.
--
==============================
Alexander Arlievsky
(e-mail address removed)
Remove prefix, first and third and fifth words after "@"
"The best tools for debugging are brains"
==============================
that generates data at high rates (over 40 interrupts/sec, about 3MB/sec).
We use WinDriver for the driver (no kernel plugin) - and we allocate a user
buffer for dma operations (continuous mode dma(, we then copy the data from
this buffer to an application buffer (all done in user mode).
Running this driver and checking CPU load we get 15% (on a P4 2.4GHz, 1GB
RAM).
The GUI part of the application draws the received data on screen. Running
just the GUI part (without interrupts from the driver, using simulated data)
we get ~2% CPU load.
Now, here's the problem:
When we combine the 2 parts of the application (GUI & driver) we get a CPU
load of 40%!!!
Any idea on how come 2%GUI + 15%driver result in 40%?
We checked many performance counters, and noticed that the page fault
counter is extremely high at about 13000 per sec. We tried running the
system without a page file but received the same results.
P.S.
Our application includes C,Managed C++ and C# modules.
--
==============================
Alexander Arlievsky
(e-mail address removed)
Remove prefix, first and third and fifth words after "@"
"The best tools for debugging are brains"
==============================