lkml.org 
[lkml]   [2002]   [Jan]   [16]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
    /
    DateWed, 16 Jan 2002 17:05:55 -0500 (EST)
    From"Richard B. Johnson" <>
    SubjectRe: floating point exception
    On Wed, 16 Jan 2002, Brian Gerst wrote:
    
    > "Richard B. Johnson" wrote:
    > > > > On 16 Jan 2002, Christian Thalinger wrote:> > > > > On Wed, 2002-01-16 at 15:32, Zwane Mwaikambo wrote:
    > > > > Can you also reproduce _without_ loading NVdriver, just to make everybody
    > > > > happy.> > > >> > > > Thanks,> > > >     Zwane Mwaikambo
    > > > >> > >> > > Sure, same breakdown. Maybe it's really an dual athlon xp issue as dave
    > > > jones mentioned. But shouldn't this also occur when i trigger a floating
    > > > point exception myself? Is there a way to check which floating point
    > > > exception was raised by the seti client?> > >> > > Regards.> > >
    [SNIPPED...]
    
    
    
    > > into one array. Then you do the exact same thing with the results
    > > put into another array.  Then just `memcmp` the arrays! You run
    > > this in a loop for an hour. If the kernel is mucking with your FPU,
    > > it will certainly show.> > Hmm, that's an interesting idea... An Athlon optimised kernel does use
    > the MMX/FPU registers to do mem copies.  Try running a kernel compiled
    > for just a Pentium and see if the problem persists.
    > 
    
    Here's a progy.. This SHOULD run forever. I assume malloc() works and
    don't check the result --yes I already know that.
    
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <malloc.h>
    #include <time.h>
    #include <math.h>
    
    #define MAX_FLOAT 0x100000
    int main(int args, char *argv[])
    {
        unsigned int seed;   
        double *x;
        double *y;
        double *z;
        size_t i;
        x = (double *) malloc(MAX_FLOAT * sizeof(double));
        y = (double *) malloc(MAX_FLOAT * sizeof(double));
        (void) time((time_t *)&seed);
        for(;;)
        {
            srand(seed); 
            z = x;
            for(i = 0; i < MAX_FLOAT; i++)
                *z++ = cos((double) rand());
            srand(seed);
            z = y;
            for(i = 0; i < MAX_FLOAT; i++)
                *z++ = cos((double) rand());
            if(memcmp(x, y, MAX_FLOAT * sizeof(double)))
                break;
            seed = rand();
        }
        fprintf(stderr, "Floating point failure\n");
        return 1;
    }
    
    
    Cheers,
    Dick Johnson
    
    Penguin : Linux version 2.4.1 on an i686 machine (797.90 BogoMips).
    
        I was going to compile a list of innovations that could be
        attributed to Microsoft. Once I realized that Ctrl-Alt-Del
        was handled in the BIOS, I found that there aren't any.
    
    
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    
    
    \
     
     \ /
      Last update: 2005-03-22 13:23    [from the cache]
    ©2003-2008