Intel, in all its wisdom has invented a coprocessor type device that sits, waiting
to do damage, on chip. A special system management interrupt activates system 
management mode which is then used to do various odd jobs - turning fans off, etc.
NI and others use this interrupt to run microcode that emulates various hardware 
devices
that they do not include. All of this is not controllable by RTL.

On Thu, Feb 07, 2002 at 04:21:23PM -0500, Norm Dresner wrote:
> Umm... What's that mean?  Would you please translate the mysterious acronym
> SMM.
> 
>     TIA
> 
>         Norm
> 
> ----- Original Message -----
> From: <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Thursday, February 07, 2002 1:22 PM
> Subject: Re: [rtl] Long latency on laptop
> 
> 
> > 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/
> >
> 
> -- [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/

Reply via email to