[maemo-developers] [maemo-developers] defective memory? (was: problem with dspmp3sink)

From: Siarhei Siamashka siarhei.siamashka at gmail.com
Date: Tue Sep 19 00:03:28 EEST 2006
On Monday 11 September 2006 00:34, Olivier ROLAND wrote:

> > After playing with the device for some time, I got the same problem with
> > lzma program this evening. And memtester also confirms that the memory is
> > really defective :(
> >
> > # ./memtester 20
> > memtester version 4.0.5 (32-bit)
> > Copyright (C) 2005 Charles Cazabon.
> > Licensed under the GNU General Public License version 2 (only).
> >
> > pagesize is 4096
> > pagesizemask is 0xfffff000
> > want 20MB (20971520 bytes)
> > got  20MB (20971520 bytes), trying mlock ...locked.
> > Loop 1:
> >   Stuck Address       : testing   0FAILURE: possible bad address line at
> > offset 0x0037e9a5.
> > Skipping to next test...
> >   Random Value        : FAILURE: 0xdeb98374 != 0xdeb90000 at offset
> > 0x000fe9a4.
> > FAILURE: 0xd04629fc != 0xd046aa88 at offset 0x000fe9a4.
> >   Compare XOR         : FAILURE: 0x50467c54 != 0x50460000 at offset
> > 0x000fe9a4.
> >   Compare SUB         : FAILURE: 0xb069e1c0 != 0xdc200000 at offset
> > 0x000fe9a4.
> > ...


> Hum ... very interesting memtester give non reproductible result on my
> device.
> and now lzma test failed also ...
> Battery is low. We definitively need to investigate this a little more.
> The good news is that your device is probably not broken. (or mine is
> also ;-) )
> All this should definitively interest Nokia people ...

Well, for the last days I tested memory occasionally and observed problem also
with a fully recharged battery at least once :(

An interesting observation is that you need to gradually increase the size of
tested memory block. You need to start with testing 20MB first, then you can
try 25MB and so on up to 43MB. If you try to allocate and test a large block
of  memory too early, memtester will just get killed.

As for the failures, only the last two hex digits of faulty address always
contain 'a5' and it is a bit strange. I expected that offset within a page
would remain the same (I changed malloc to mmap in order to always allocate
memory buffer at a page boundary ) and unless pages have size equal to 256
bytes, it is inconsistent.

I also wanted to detect physical address of a faulty memory region. I tried to
open '/dev/mem', read it one page at a time and compare its content with the
data from a faulty page. Unfortunately this does not work on Nokia 770 and
segfaults on reading from '/dev/mem'. The same code works fine on
desktop x86 pc and has no problems identifying physical address for any 
page. Test programs were always run as root.

Any other ideas?

More information about the maemo-developers mailing list