Please send me code. I wonder if it is purely a timing issue and 
has something to do with a case when a RT thread runs out of time 
while using FP. This would be easy to check. In fact, you could 
try the following
           rtl_no_interrupts(x)
     while(1){
           do floating point
           rtl_sched();  /* call the scheduler, don't wait for resched */
          }

On Tue, Apr 11, 2000 at 01:53:50PM -0400, [EMAIL PROTECTED] wrote:
> I'd like to second David Christini's problem.
> 
> Like Pavel, I have various RT applications that use doubles. (I never use
> floats to avoid unnecessary bugs.) I use several math functions, 
> specifically: exp(), sin(), cos() and sqrt();
> 
> Like David however, none of my systems are particularly stable.  As
> Pavel suggested I think the instability is coming from memory related
> issues, but not the user/kernel type. 
> 
> All of my modules are stable if I use a 'small' number of doubles,
> and a 'small' number of operations on those doubles (per period in a
> periodic rt thread.) I observe two possibly related phenomena--
> 
> 1) as I increase the number of double operations in a cycle, the cpu will
>       eventually lock up. This doesn't concern me, perhaps I'm asking
>       too much of it --
>               It works with something like 100 double fxns
>       {ie. exp(),sin(),etc.} & 1000 double operations {ie +-*/}
>       every 100 microseconds, on a 450MHz PIII.
> 
> 2) as I increase the number of doubles I use, the system will eventually
>       spontaneously reboot itself.  This phenomenon is unpredictable.
>               ~100  double variables ->  works every time.
>                       'every time' =  hundreds of trials for up to
>                                       millions of periods per trial.
>               ~1000 double variables -> reboots every time.
>               ~100->1000 double variables -> works/reboots randomly.
> 
>       Obviously I observe this when using arrays of doubles, and the
>       numbers I listed above are highly dependent on the number of
>       operations I perform in a given period.  But even if I perform
>       almost no operations in a loop (say, only one typecast), an array
>       of 2000 doubles in my module will reboot the system upon
>       insertion. Understand that for a given operation number, the
>       number of stable double variables is a constant.
> 
>       Two examples:
>       1) 1 array of 100 doubles & 10 other doubles
>               ~400 operations & 99 functions
>               -works fine every time
>          1 array of 105 doubles & 10 other doubles
>               ~400 operations & 99 functions (extra doubles aren't used)
>               - reboots every time
> 
>       2) 4 arrays of 10 doubles & 30 other doubles
>               ~150 operations & 78 functions
>               - works fine every time
>          4 arrays of 11 doubles & 30 other doubles
>               ~150 operations & 78 functions (extra doubles aren't used)
>               - reboots every time
> 
> If I use 'int' in place of 'double', (of course I can't use the math
> fxns), but I find arrays of 100,000 members reliable, without any crash
> or reboot. (I assume I could go to millions of members before running into
> a problem.) 
> 
> After extreme frustration, I gave up pressing this issue about a month
> ago, and just restricted myself to small double arrays. But I suspect that
> my issues are related to David Christini's, so I thought I'd bring it up.
> 
> If anyone is interested in examining my problem,
> let me know and I'll send out the code...
> 
> Chuck
> 
> On Tue, 11 Apr 2000, Pavel Andris wrote:
> > David,
> > I use kernel 2.2.13, RTL 2.0. My RT application uses double variables
> > and operations heavily including sin(), cos(), sqrt(), atan2(). I also
> > use shared memory (Tomek Motylewski's mbuff). I don't remember any
> > crash caused by floating point operations. I'd expect your trouble is
> > caused by something else (float/double confusion?, kernel/user memory
> > context trouble?). 
> > Regards, Pavel Andris
> 
> -- [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/rtlinux/

-- 
---------------------------------------------------------
Victor Yodaiken 
FSMLabs:  www.fsmlabs.com  www.rtlinux.com
FSMLabs is a servicemark and a service of 
VJY Associates L.L.C, New Mexico.

-- [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/rtlinux/

Reply via email to