Is all power saving and the horrible "speed step" disabled?
If so, you may be the victim of the dreaded SMM about which nothing
can be done.
On Thu, Feb 07, 2002 at 12:14:47PM +0100, Linus Gasser wrote:
> Hi,
> I'm running a RH7.2 with a rtlinux 3.1 a linux-2.2.19 kernel on a DELL
> Latitude laptop. Data aquisition is done with a PCI-card which holds a 9080
> from PLX technology. Data rate is about 14MSamples/s, which are transferred
> through DMA in 1KByte blocks (which equals to one "slot"). The loop that gets
> the data looks like this ( I tried to simplify it as much as possible without
> deleting stuff that is important...):
>
> void myLoop(){
> rtl_setclockmode(CLOCK_RTL_SCHED,
> RTL_CLOCK_MODE_ONESHOT,
> 0);
> start_time = clock_gethrtime(CLOCK_RTL_SCHED)+
> (hrtime_t)GPP_SLOT_TIME_NS;
> pthread_make_periodic_np(pthread_self(),
> start_time,
> 0);
> do {
> pthread_wait_np();
> rtl_printf( "mailbox: %i\n", mbox_9080 );
>
> [ lots of calculations ]
>
> offset = slot_count - mbox_9080;
> // mbox_9080 holds the number of DMA-blocks already written into
> // memory.
>
> start_time = clock_gethrtime(CLOCK_RTL_SCHED) +
> offset*BLOCK_TIME_NS;
> if (offset > 1)
> pthread_make_periodic_np(pthread_self(),start_time,0);
> else
> EXIT=1;
>
> slot_count++;
> } while (EXIT == 0);
> }
>
> Now: on a dual-pentium, this works real nice. No problem at all. The
> wakeup-time is always accurate to at least 50us (the time of a "slot"). But,
> as soon as I let it run on the laptop (single processor, 1GHz PIII), these
> wakeup-calls may be missed by as much as 10ms (yes, 200 "slots") once every
> 2-3 minutes. Of course my first reaction was to remove all APM-functions,
> then to compile the kernel non-SMP and then I let run a script in parallel,
> like
>
> while sleep 1; do date +%T >> log; cat /proc/loadavg >> log; ps ax | tail -n
> 10 | head -n 7 >> log; done
>
> So I could look at what happens. But there was nothing special. So I turned
> off all services I'm sure aren't in use, switched to runlevel 3 and tried
> again. Still no luck. Then I shut down the network and started the thing
> locally (before I did it over the network), still no luck. Threw away the
> graphical interface, no luck.
> Now I don't have any ideas left of what to do. I'm running in text-mode,
> runlevel 3, w/o all the bells and whistles, no network and it still crashes
> on me... runlevel s, shut down everything, ps ax yields:
> PID TTY STAT TIME COMMAND
> 1 ? S 0:05 init
> 2 ? SW 0:00 [kflushd]
> 3 ? SW 0:00 [kupdate]
> 4 ? SW 0:00 [kswapd]
> 5 ? SW 0:00 [keventd]
> 7254 tty3 S 0:00 init
> 7255 tty3 S 0:00 /bin/sh
> 7463 tty3 R 0:00 ps ax
> (no lines omitted...) and it still crashes...
> Does anyone have another idea? Everything that I can think of that
> interrupts my process I turned off. Do YOU have any idea of what to do?
>
> Greets
>
> ineiti
> -- [rtl] ---
> To unsubscribe:
> echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> --
> For more information on Real-Time Linux see:
> http://www.rtlinux.org/
--
---------------------------------------------------------
Victor Yodaiken
Finite State Machine Labs: The RTLinux Company.
www.fsmlabs.com www.rtlinux.com
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/