I am using a simple application that creates a scoket and sends UDP
data on a
WinCE 6.0 BSP on 250 MHz ARM. What was observed that for different
data
rates, the measured CPU load turned out to be pretty much high as
mentioned
in the table below:

Desired | CPU load | CPU load
Throughput | (Stack Loopback) | (Send to a particular IP Address)
(Kbps) | (127.0.0.1) |
---------------------------------------------------------
10 | 10 % | 7 %
100 | 11 % | 7 %
400 | 18 % | 14 %
800 | 27 % | 23 %
1000 | 31 % | 27 %

I doubted the NDIS miniport implementation for taking so much of a CPU
load
in a send call but the Stack level loopback using IP address 127.0.0.1
(when
my NDIS Miniport send functions are not called) take much more CPU
load. In
there something wrong in the way I am sending and receiving packets in
my
application or the miniport NDIS. We are targetting an applciaiton
that sends
A/V streams at constant bitrate (varying from 100Kbps - 1Mbps) UDP
packets.
We are using blocking socket calls and our concern is the CPU loading.
The
Winsock stress tests also showed a 100 % CPU load all the time.

Will Overlapped IO, non blocking sockets will aid in lowering the CPU
utilization?
Why should a sendto() call for 127.0.0.1 should take so much of a CPU
load.

Thanks.

Re: Winsock calls overhead by Paul

Paul
Mon Sep 24 10:49:55 CDT 2007

Please don't separately post the same question to multiple groups! If you
feel like two groups should get the question, list both groups in the To
field of a single message. I've replied elsewhere...

Paul T.

"ravishk" <ravishk@gmail.com> wrote in message
news:1190543635.749934.307780@w3g2000hsg.googlegroups.com...
>I am using a simple application that creates a scoket and sends UDP
> data on a
> WinCE 6.0 BSP on 250 MHz ARM. What was observed that for different
> data
> rates, the measured CPU load turned out to be pretty much high as
> mentioned
> in the table below:
>
> Desired | CPU load | CPU load
> Throughput | (Stack Loopback) | (Send to a particular IP Address)
> (Kbps) | (127.0.0.1) |
> ---------------------------------------------------------
> 10 | 10 % | 7 %
> 100 | 11 % | 7 %
> 400 | 18 % | 14 %
> 800 | 27 % | 23 %
> 1000 | 31 % | 27 %
>
> I doubted the NDIS miniport implementation for taking so much of a CPU
> load
> in a send call but the Stack level loopback using IP address 127.0.0.1
> (when
> my NDIS Miniport send functions are not called) take much more CPU
> load. In
> there something wrong in the way I am sending and receiving packets in
> my
> application or the miniport NDIS. We are targetting an applciaiton
> that sends
> A/V streams at constant bitrate (varying from 100Kbps - 1Mbps) UDP
> packets.
> We are using blocking socket calls and our concern is the CPU loading.
> The
> Winsock stress tests also showed a 100 % CPU load all the time.
>
> Will Overlapped IO, non blocking sockets will aid in lowering the CPU
> utilization?
> Why should a sendto() call for 127.0.0.1 should take so much of a CPU
> load.
>
> Thanks.
>



Re: Winsock calls overhead by RRLee

RRLee
Tue Sep 25 09:50:02 CDT 2007

The response Paul refers to is posted in windowsce.app.development
Please follow up on that copy of the thread (precedence)
--
--Richard R Lee, eMVP