LINUX.ORG.RU

MB77.07 сообщение - pagealloc: memory corruption

 ,


1

1

Поясните если можно. Кирдык памяти NAND ?

Выполняю и периодически получаю

root@shadow:~# /etc/init.d/networking restart                                   
Running /etc/init.d/networking restart is deprecated because it may not re-enable some interfaces ... (warning).                                                
Reconfiguring network interfaces...RTNETLINK answers: No such process           
[  183.140000] pagealloc: memory corruption                                     
[  183.150000] c49f8800: 01 80 c2 00 00 00 5c 8a 38 9c 00 a9 00 27 42 42  ......
\.8....'BB                                                                      
[  183.160000] c49f8810: 03 00 00 02 02 2c 80 00 5c 8a 38 9c 00 90 00 00  .....,
..\.8.....                                                                      
[  183.170000] c49f8820: 00 00 80 00 5c 8a 38 9c 00 90 80 18 00 00 14 00  ....\.
8.........                                                                      
[  183.180000] c49f8830: 02 00 0f 00 00 00 00 00                          ......
..                                                                              
[  183.190000] CPU: 0 PID: 2221 Comm: ip Not tainted 3.10.28-shadow1 #1         
[  183.200000] [<c00123c4>] (unwind_backtrace+0x0/0x118) from [<c0010e1c>] (show
_stack+0x10/0x14)                                                               
[  183.210000] [<c0010e1c>] (show_stack+0x10/0x14) from [<c00828a8>] (kernel_map
_pages+0x130/0x1ec)                                                             
[  183.220000] [<c00828a8>] (kernel_map_pages+0x130/0x1ec) from [<c005e82c>] (ge
t_page_from_freelist+0x36c/0x47c)                                               
[  183.230000] [<c005e82c>] (get_page_from_freelist+0x36c/0x47c) from [<c005f3ec
>] (__alloc_pages_nodemask+0xe0/0x758)  
.......

apt-get upgrade и прочие инсталляции/компиляции программок раз от раза выкидывают что то похожее с сообщением что ошибка не воспроизводима , ошибка системы и т.д.

root@shadow:~# apt-get install make                                   
Reading package lists... Done                                                   
Building dependency tree                                                        
Reading state information... Done                                               
Suggested packages:                                                             
  make-doc                                                                      
The following NEW packages will be installed:                                   
  make                                                                          
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.                  
Need to get 393 kB of archives.                                                 
After this operation, 1149 kB of additional disk space will be used.            
Get:1 http://archive.raspbian.org/raspbian/ wheezy/main make armhf 3.81-8.2 [393
 kB]                                                                            
Fetched 393 kB in 1s (290 kB/s)                                                 
Selecting previously unselected package make.                                   
(Reading database ... 18002 files and directories currently installed.)         
Unpacking make (from .../make_3.81-8.2_armhf.deb) ...                           
Setting up make (3.81-8.2) ...                                                  
[ 6720.550000]                                                                  
[ 6720.550000]                                                                  
[ 6720.550000] ecc mismatch 66 55 5B - 0c 03 03                                 
[ 6720.550000]                                                                  
[ 6720.560000] ------------[ cut here ]------------                             
[ 6720.560000] kernel BUG at drivers/mtd/devices/mnand.c:867!                   
[ 6720.560000] Internal error: Oops - BUG: 0 [#1] ARM                           
[ 6720.560000] Modules linked in:                                               
[ 6720.560000] CPU: 0 PID: 4589 Comm: apt-get Not tainted 3.10.28-shadow1 #1    
[ 6720.560000] task: c49f23c0 ti: c49d6000 task.ti: c49d6000                    
[ 6720.560000] PC is at mnand_read_oob+0x32c/0x800                              
[ 6720.560000] LR is at mnand_read_oob+0x32c/0x800                              
[ 6720.560000] pc : [<c01ffb34>]    lr : [<c01ffb34>]    psr: 60000013          
[ 6720.560000] sp : c49d7ac8  ip : 00000002  fp : 000000f4                      
[ 6720.560000] r10: c05a7370  r9 : 00000007  r8 : 00000066                      
[ 6720.560000] r7 : 00000055  r6 : 0000005b  r5 : 00000003  r4 : 0000000c       
[ 6720.560000] r3 : 00000001  r2 : c04f605c  r1 : 00000000  r0 : 00000024       
[ 6720.560000] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[ 6720.560000] Control: 00c5387d  Table: 40dd8008  DAC: 00000015                
[ 6720.560000] Process apt-get (pid: 4589, stack limit = 0xc49d61b0)            
[ 6720.560000] Stack: (0xc49d7ac8 to 0xc49d8000)                                
[ 6720.560000] 7ac0:                   0000000c 00000003 00000003 c4815240 00000
000 c020016c                                                                    
[ 6720.560000] 7ae0: c49d7af0 c005c864 c5b701c8 c5b70e09 00000000 00000000 19395
000 00000000                                                                    
[ 6720.560000] 7b00: 00000000 c05129f0 c053d540 00000700 fffff800 00000000 19395
000 c887d813                                                                    
[ 6720.560000] 7b20: 00000000 00480000 00000000 5b556664 0000006c 19394e38 0000
.....
[ 6720.560000] [<c01ffb34>] (mnand_read_oob+0x32c/0x800) from [<c020016c>] (mnan
d_read+0x80/0xa4)                                                               
[ 6720.560000] [<c020016c>] (mnand_read+0x80/0xa4) from [<c01f9e64>] (part_read+
0x44/0x7c)                                                                      
[ 6720.560000] [<c01f9e64>] (part_read+0x44/0x7c) from [<c01f7c38>] (mtd_read+0x
70/0xa4)                                                                        
[ 6720.560000] [<c01f7c38>] (mtd_read+0x70/0xa4) from [<c0211104>] (ubi_io_read+
0x198/0x328)                                                                    
[ 6720.560000] [<c0211104>] (ubi_io_read+0x198/0x328) from [<c020e964>] (ubi_eba
_read_leb+0x31c/0x458)                                                          

Еще пример

# make

..................
  CC      build-arm6/src/account.o
*** glibc detected *** /usr/lib/gcc/arm-linux-gnueabihf/4.6/cc1: munmap_chunk(): invalid pointer: 0x0091ffe8 ***
src/account.c: In function 'sip_params_decode':
src/account.c:313:1: internal compiler error: Aborted
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions.
The bug is not reproducible, so it is likely a hardware or OS problem.
make: *** [build-arm6/src/account.o] Error 1

Изначально таких проблем не было.

memtester ошибок не показывает.

И что делать ?


Похоже на проблему с DDR, либо включенный в сборку ядра косячный драйвер (напр. из стейджинга). Оно не ронялось? Ногами не пиналось?

Для чистоты эксперимента лучше начисто перешиться и посмотреть как оно себя поведет на чистой сборке.

И еще, крайне не рекомендуем собирать софт непосредственно на плате. Это медленно, печально и быстро убивает NAND. Тут: http://www.module.ru/mb7707/toolchains/ есть кроссовые тулчейны для windows/linux, которые уже содержат внутри debian/raspbian sysroot и с которым можно динамически линковаться.

Тут: https://github.com/RC-MODULE/easynmc-cmake-example пример программы собирающейся cmake с учетом возможности кросс-компиляции.

ncrmnt ★★★★★ ()
Последнее исправление: ncrmnt (всего исправлений: 2)
Ответ на: комментарий от ncrmnt

Нет. Не ронялось, пользовались и тулчейнами, но много тестилось с перезаписью в NAND.

Перешивка начисто дает тот же результат.

Можно ли менять физически NAND когда совсем заюзается ?

edu08 ()
Ответ на: комментарий от edu08

При наличии навыков пайки поменять можно все, что только есть на плате. Разумеется никакой гарантии в таком случае. При полностью убитом нанде можно загрузить mboot по edcl, далее tftp/nfs.

ncrmnt ★★★★★ ()
Ответ на: комментарий от ncrmnt

Когда я спрашивал о физической замене NAND я хотел спросить есть ли какие грабли с его заменой или просто найти такой же чип, впаять и железка потом сразу заведется. Или что то еще прошивать придется ?

Интересно, а производитель занимается диагностикой и постгарантийным ремонтом этих железок? Может у него какие сервисные центры есть, Вы не подскажете?

edu08 ()
Ответ на: комментарий от edu08

Чип должен быть с аналогичным writesize (макс. 4к, если не изменяет память, но лучше просто брать идентичный). Если будет больше, то оно:

1. Не сможет с него загрузиться (только через edcl)

2. Придется докручивать драйвера NAND в mboot/linux для использования софтварного ecc, либо с хардварным, но будет доступна половина объема.

3. Если чип подходит, все должно без проблем прошиться через edcl.

ncrmnt ★★★★★ ()
Ответ на: комментарий от ncrmnt

Андрей, мы тоже периодически получаем ecc mismatch и у нас есть патч, кажется ;) (я уточню в понедельник)
неужели вы ни разу не натыкались на это??

aol ★★★★★ ()
Ответ на: комментарий от aol

На тех платах что через меня прошли такого ни разу не встречал. Если есть патч присылайте, закину в ближайший апдейт всех сборок.

ncrmnt ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.