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]
