public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Info on Athlon/Duron failure as requested
@ 2001-05-03 20:03 Gordon Sadler
  2001-05-04  8:40 ` Idea for Athlon/Duron failure testing Seth Goldberg
  2001-05-04  9:54 ` Athlon/VIA Kernel Experimentation (mmx.c) Seth Goldberg
  0 siblings, 2 replies; 6+ messages in thread
From: Gordon Sadler @ 2001-05-03 20:03 UTC (permalink / raw)
  To: linux-kernel; +Cc: alan

[-- Attachment #1: Type: text/plain, Size: 51 bytes --]

See attachment for info requested.

Gordon Sadler


[-- Attachment #2: X988920011-12614-0.gbsadler --]
[-- Type: text/plain, Size: 1300 bytes --]

From: gbsadler1@lcisp.com (Gordon Sadler)
Subject: Re: Athlon runtime problems
In-Reply-To: <linux.kernel.E14oRie-000556-00@the-village.bc.nu>
Reply-To: gbsadler1@lcisp.com

On  Sat, 14 Apr 2001 16:12:09 +0100 (BST), Alan Cox
<alan@lxorguk.ukuu.org.uk> wrote:
> Can the folks who are seeing crashes running athlon optimised kernels
> all mail
> me
> 
> -	CPU model/stepping
$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 3
model name      : AMD Duron(tm) Processor
stepping        : 1
cpu MHz         : 801.828
cache size      : 64 KB
fdiv_bug        : no
hlt_bug         : no
sep_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca
cmov pat pse36 psn mmxext mmx fxsr 3dnowext 3dnow
bogomips        : 1599.07
 
> -	Chipset
VIA KT133A AGPset (KT133A+VT82C686B)

> -	Amount of RAM
128 MB

> -	/proc/mtrr output
$ cat /proc/mtrr
reg00: base=0x00000000 (   0MB), size= 128MB: write-back, count=1

> -	compiler used
$gcc -v
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.4/specs
gcc version 2.95.4 20010319 (Debian prerelease)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Idea for Athlon/Duron failure testing...
  2001-05-03 20:03 Info on Athlon/Duron failure as requested Gordon Sadler
@ 2001-05-04  8:40 ` Seth Goldberg
  2001-05-04  9:54 ` Athlon/VIA Kernel Experimentation (mmx.c) Seth Goldberg
  1 sibling, 0 replies; 6+ messages in thread
From: Seth Goldberg @ 2001-05-04  8:40 UTC (permalink / raw)
  Cc: Linux-kernel

Hi,

   Do you think it would be a good idea to check the fast_copy
athlon mmx routine by putting in code that basically compares
the source & destination copies and checks if they are equal?
I realize that will slow down the system, but for testing,
it seems like a good idea...

 --S

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Athlon/VIA Kernel Experimentation (mmx.c)
  2001-05-03 20:03 Info on Athlon/Duron failure as requested Gordon Sadler
  2001-05-04  8:40 ` Idea for Athlon/Duron failure testing Seth Goldberg
@ 2001-05-04  9:54 ` Seth Goldberg
  2001-05-04 13:21   ` Brian Gerst
  2001-05-04 14:09   ` Alan Cox
  1 sibling, 2 replies; 6+ messages in thread
From: Seth Goldberg @ 2001-05-04  9:54 UTC (permalink / raw)
  To: Gordon Sadler; +Cc: linux-kernel, alan

Hi,

  I implemented a small check loop at the end of the fast_page_copy
routine in mmx.c for the Athlon.  Booting the resulting kernel
yields an interesting result. Every single time, the kernel
panics RIGHT AFTER it frees unused kernel memory from bootup.
I encourage those of you with the same problem to try this and report
when it panics.

Here is my patch to mmx.c: (sorry about the long lines)
-----------------------------------------------------cut here
diff -r linux-ref/arch/i386/lib/mmx.c linux/arch/i386/lib/mmx.c
204a205,216
>
>       {
>               register int x = 0;
>               /* do mem compares to ensure written == read */
>               for ( /* initted above */; x < (4096/sizeof(int)); x++ )
>               {
>                       if ( ((int *)to)[x] != ((int *)from)[x] ) {
>                               panic("fast_page_copy: dest value @ 0x%lx (%x) does not equal source value @ %lx (%x)!\n",
>                                               (long) to, ((int *)to)[x], (long) from, ((int *) from)[x] );
>                       }
>               }
>       }                                                                          
-----------------------------------------------------cut here

  Wouldn't it be correct to say that because it is panicking, the
page copy was not completed properly?  If that is so, the next step
is to find out why this copy is not working properly...

For me the output is:

...
Freeing unused kernel memory: 188k freed     
Kernel panic: fast_page_copy: dest value @ 0xcfed1000 (39312036) does
not equal source value @ cfed4000(79005b)!

--------

It is interesting to note that these addresses are page aligned, meaning
that the copy of even
the first byte failed!

 --Seth

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Athlon/VIA Kernel Experimentation (mmx.c)
  2001-05-04  9:54 ` Athlon/VIA Kernel Experimentation (mmx.c) Seth Goldberg
@ 2001-05-04 13:21   ` Brian Gerst
  2001-05-04 16:57     ` Seth Goldberg
  2001-05-04 14:09   ` Alan Cox
  1 sibling, 1 reply; 6+ messages in thread
From: Brian Gerst @ 2001-05-04 13:21 UTC (permalink / raw)
  To: Seth Goldberg; +Cc: Gordon Sadler, linux-kernel, alan

Seth Goldberg wrote:
> 
> Hi,
> 
>   I implemented a small check loop at the end of the fast_page_copy
> routine in mmx.c for the Athlon.  Booting the resulting kernel
> yields an interesting result. Every single time, the kernel
> panics RIGHT AFTER it frees unused kernel memory from bootup.
> I encourage those of you with the same problem to try this and report
> when it panics.
> 
> Here is my patch to mmx.c: (sorry about the long lines)
> -----------------------------------------------------cut here
> diff -r linux-ref/arch/i386/lib/mmx.c linux/arch/i386/lib/mmx.c
> 204a205,216
> >
> >       {
> >               register int x = 0;
> >               /* do mem compares to ensure written == read */
> >               for ( /* initted above */; x < (4096/sizeof(int)); x++ )
> >               {
> >                       if ( ((int *)to)[x] != ((int *)from)[x] ) {
> >                               panic("fast_page_copy: dest value @ 0x%lx (%x) does not equal source value @ %lx (%x)!\n",
> >                                               (long) to, ((int *)to)[x], (long) from, ((int *) from)[x] );
> >                       }
> >               }
> >       }
> -----------------------------------------------------cut here
> 
>   Wouldn't it be correct to say that because it is panicking, the
> page copy was not completed properly?

No, you are comparing the following two pages... from and to are
incremented as the copy proceeds.  Subtract PAGE_SIZE from them before
comparing.

--

				Brian Gerst

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Athlon/VIA Kernel Experimentation (mmx.c)
  2001-05-04  9:54 ` Athlon/VIA Kernel Experimentation (mmx.c) Seth Goldberg
  2001-05-04 13:21   ` Brian Gerst
@ 2001-05-04 14:09   ` Alan Cox
  1 sibling, 0 replies; 6+ messages in thread
From: Alan Cox @ 2001-05-04 14:09 UTC (permalink / raw)
  To: Seth Goldberg; +Cc: Gordon Sadler, linux-kernel, alan

> is to find out why this copy is not working properly...
> 
> For me the output is:
> 
> ...
> Freeing unused kernel memory: 188k freed     
> Kernel panic: fast_page_copy: dest value @ 0xcfed1000 (39312036) does
> not equal source value @ cfed4000(79005b)!

Swap the panic for a printk/BUG() and see who the caller was


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Athlon/VIA Kernel Experimentation (mmx.c)
  2001-05-04 13:21   ` Brian Gerst
@ 2001-05-04 16:57     ` Seth Goldberg
  0 siblings, 0 replies; 6+ messages in thread
From: Seth Goldberg @ 2001-05-04 16:57 UTC (permalink / raw)
  To: Brian Gerst; +Cc: Gordon Sadler, linux-kernel, alan


 Doh. I feel like a moron.  Thanks.. will do...

 --S


Brian Gerst wrote:
> 
> Seth Goldberg wrote:
> >
> > Hi,
> >
> >   I implemented a small check loop at the end of the fast_page_copy
> > routine in mmx.c for the Athlon.  Booting the resulting kernel
> > yields an interesting result. Every single time, the kernel
> > panics RIGHT AFTER it frees unused kernel memory from bootup.
> > I encourage those of you with the same problem to try this and report
> > when it panics.
> >
> > Here is my patch to mmx.c: (sorry about the long lines)
> > -----------------------------------------------------cut here
> > diff -r linux-ref/arch/i386/lib/mmx.c linux/arch/i386/lib/mmx.c
> > 204a205,216
> > >
> > >       {
> > >               register int x = 0;
> > >               /* do mem compares to ensure written == read */
> > >               for ( /* initted above */; x < (4096/sizeof(int)); x++ )
> > >               {
> > >                       if ( ((int *)to)[x] != ((int *)from)[x] ) {
> > >                               panic("fast_page_copy: dest value @ 0x%lx (%x) does not equal source value @ %lx (%x)!\n",
> > >                                               (long) to, ((int *)to)[x], (long) from, ((int *) from)[x] );
> > >                       }
> > >               }
> > >       }
> > -----------------------------------------------------cut here
> >
> >   Wouldn't it be correct to say that because it is panicking, the
> > page copy was not completed properly?
> 
> No, you are comparing the following two pages... from and to are
> incremented as the copy proceeds.  Subtract PAGE_SIZE from them before
> comparing.
> 
> --
> 
>                                 Brian Gerst

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2001-05-04 16:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-05-03 20:03 Info on Athlon/Duron failure as requested Gordon Sadler
2001-05-04  8:40 ` Idea for Athlon/Duron failure testing Seth Goldberg
2001-05-04  9:54 ` Athlon/VIA Kernel Experimentation (mmx.c) Seth Goldberg
2001-05-04 13:21   ` Brian Gerst
2001-05-04 16:57     ` Seth Goldberg
2001-05-04 14:09   ` Alan Cox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox