Question about kernal level handling of threads

I am using RTP 6.1 with a 700 MHz PIII. Currently, I have a process that
has 400 threads in it that are either received blocked or usleep() blocked.
I would expect 400 events per second where one of the threads would need to
process the event. Would you expect that the kernel is using 90%+ of my
processor time to handle the switching? I am using spin (which as you can
guess is not updating often) and it shows my process using very little cpu
and procnto is using a great deal of the cpu.

Any ideas?

Thanks In Advance,

Kevin

“Kevin Hykin” <kevin.hykin@bepco.com> wrote in message
news:a6l9l8$j91$1@inn.qnx.com

I am using RTP 6.1 with a 700 MHz PIII. Currently, I have a process that
has 400 threads in it that are either received blocked or usleep()
blocked.
I would expect 400 events per second where one of the threads would need
to
process the event. Would you expect that the kernel is using 90%+ of my
processor time to handle the switching? I am using spin (which as you can
guess is not updating often) and it shows my process using very little cpu
and procnto is using a great deal of the cpu.

Any ideas?

Are you sure it’s not procnto idle thread you are looking at?

Thanks In Advance,

Kevin

I am not sure. I just assumed that procnto represented the kernel (idle or
not). Is there another process that I should look for in the process list?

The Knowns:

What I do know is that when my process (with 400 threads) is running, the
system pretty much slows down to a crawl but in spin my process has a very
low amount of CPU% (6% - 10%). What would the best way to determine if
there is a single thread or process that is the processor hog?

Thanks,

Kevin


“Mario Charest” <goto@nothingness.com> wrote in message
news:a6l9qg$ji4$1@inn.qnx.com

“Kevin Hykin” <> kevin.hykin@bepco.com> > wrote in message
news:a6l9l8$j91$> 1@inn.qnx.com> …
I am using RTP 6.1 with a 700 MHz PIII. Currently, I have a process
that
has 400 threads in it that are either received blocked or usleep()
blocked.
I would expect 400 events per second where one of the threads would need
to
process the event. Would you expect that the kernel is using 90%+ of my
processor time to handle the switching? I am using spin (which as you
can
guess is not updating often) and it shows my process using very little
cpu
and procnto is using a great deal of the cpu.

Any ideas?

Are you sure it’s not procnto idle thread you are looking at?


Thanks In Advance,

Kevin
\

“Kevin Hykin” <kevin.hykin@bepco.com> wrote in message
news:a6lgf3$ntg$1@inn.qnx.com

I am not sure. I just assumed that procnto represented the kernel (idle
or
not). Is there another process that I should look for in the process
list?

The Knowns:

What I do know is that when my process (with 400 threads) is running, the
system pretty much slows down to a crawl but in spin my process has a very
low amount of CPU% (6% - 10%). What would the best way to determine if
there is a single thread or process that is the processor hog?

Spin is probably the best (run it at high priority), look at CPU usage for
a specific thread and not only for processes.

Thanks,

Kevin


“Mario Charest” <> goto@nothingness.com> > wrote in message
news:a6l9qg$ji4$> 1@inn.qnx.com> …

“Kevin Hykin” <> kevin.hykin@bepco.com> > wrote in message
news:a6l9l8$j91$> 1@inn.qnx.com> …
I am using RTP 6.1 with a 700 MHz PIII. Currently, I have a process
that
has 400 threads in it that are either received blocked or usleep()
blocked.
I would expect 400 events per second where one of the threads would
need
to
process the event. Would you expect that the kernel is using 90%+ of
my
processor time to handle the switching? I am using spin (which as you
can
guess is not updating often) and it shows my process using very little
cpu
and procnto is using a great deal of the cpu.

Any ideas?

Are you sure it’s not procnto idle thread you are looking at?


Thanks In Advance,

Kevin


\