On Mon, 7 Jul 2008, Siegfried Schmidt wrote:

> Hi,
>
> thanks for your ideas.
>
> Normally my transfer of one byte needs about 3 - 4 microseconds (i have 
> mentioned). Sometimes we need up to 50 - 80 microseconds for one byte.
> So i think other threads or processes gets the cpu and my driver was 
> interrupted.
> I have done some dtrace tests, but up to now I can't find what happend.

Preemption and interrupt is measureable with DTrace, via the sched 
provider's on-cpu / off-cpu probes. If you see those fire while you're in 
the 'critical' path in your driver, you know.

Also, in S10 / Opensolaris, you can use "::interrupts" in mdb and/or the 
intradm command would allow you to check what other interrupt if any is 
bound to the CPU you're executing your program on.

> The intention is to know what happens within such a 50 - 80 microseconds
> transfer in Solaris and what can we do to eliminate these 50 - 80 us 
> transfers.

Have you got any realtime processes running ? In-kernel preemption only 
happens if there's realtime stuff around. Else, it could be interrupts, 
but that can be checked via the above.

FrankH.

>
> sigi
>
>
> This message posted from opensolaris.org
> _______________________________________________
> opensolaris-discuss mailing list
> [email protected]
>

------------------------------------------------------------------------------
No good can come from selling your freedom, not for all the gold in the world,
for the value of this heavenly gift far exceeds that of any fortune on earth.
------------------------------------------------------------------------------
_______________________________________________
opensolaris-discuss mailing list
[email protected]

Reply via email to