Linux boot hanging and kernel panic with SMP enabled

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Linux boot hanging and kernel panic with SMP enabled

5,396 次查看
arashaz_
Contributor II

Dear All,
I have a strange problem regarding synchronous multiprocessing (SMP) with a
P1020 compatible board and I appreciate if could advise me.  While booting
Linux, if I pass "-nosmp" as a boot argument, it works fine.  Enabling the SMP
(removing the -nosmp"), Linux crashes and does not boot. Note that when it
crashes, the kernel log appears somehow randomly (find some of them below). Most of the time,  it reports a "Data Cache Parity Error" or "Data Cache Push Parity Error" and sometimes "Unable to handle kernel paging request for instruction fetch" and “Unable to handle kernel paging request for data at address...”. In some cases, it even halts with no error message (just hangs up in the middle of the boot). So, I guess that the error can not be related
to one of the kernel drivers which are being loaded one by one.

Since the problem has a random nature, I even tried putting a big fan on the board, using a more strong power supply, using different Linux images with
different boot arguments such as -noapic , -nomce, ... None of them solved the problem.

Any comment is appreciated.


Unable to handle kernel paging request for instruction fetch 

Faulting instruction address: 0x00000000 

Oops: Kernel access of bad area, sig: 11 [#1] 

SMP NR_CPUS=2 P1020 RDB

Modules linked in:

Machine check in kernel mode. 

Caused by (from MCSR=20000000): Data Cache Push Parity Error 

Oops: Machine check, sig: 7 [#2] 

SMP NR_CPUS=2 P1020 RDB 

Modules linked in:

Oops: Exception in kernel mode, sig: 4 [#1] 

SMP NR_CPUS=2 P1020 RDB 

Modules linked in:

Machine check in kernel mode. 

Caused by (from MCSR=20000000): Data Cache Push Parity Error 

Oops: Machine check, sig: 7 [#2] 

SMP NR_CPUS=2 P1020 RDB 

Modules linked in:

Fixing recursive fault but reboot is needed!

Unable to handle kernel paging request for instruction fetch 

Faulting instruction address: 0x00000000 

Oops: Kernel access of bad area, sig: 11 [#1] 

SMP NR_CPUS=2 P1020 RDB 

Modules linked in:

Unable to handle kernel paging request for data at address 0x81a403b0 

Faulting instruction address: 0xc01d7d88 

Oops: Kernel access of bad area, sig: 11 [#1] 

SMP NR_CPUS=2 P1020 RDB



标签 (1)
标记 (4)
0 项奖励
回复
5 回复数

2,326 次查看
sinanakman
Senior Contributor III

Arash, what is the kernel version you are running there ?

0 项奖励
回复

2,326 次查看
arashaz_
Contributor II

Hi,

The default version used by P1020WLAN Rev. D. LTIB, which is 2.6.32 (or 34). Sorry if I could not check 32 or 34 because I am out of office now. I will let you know.

Cheers,

Arash

0 项奖励
回复

2,326 次查看
arashaz_
Contributor II

Hi,

The version is 2.6.32.

Arash

0 项奖励
回复

2,326 次查看
lunminliang
NXP Employee
NXP Employee

See below technical support comment:

Do you use Freescale SDK on the P1020 board?

What is value of the CONFIG_SMP variable in Linux kernel?

There is the following information about this parameter in the Linux kernel:

CONFIG_SMP:

This enables support for systems with more than one CPU. If you have a system with only one CPU, say N. If you have a system with more than one CPU, say Y. Note that the kernel does not currently support SMP machines with 603/603e/603ev or PPC750 ("G3") processors since they have inadequate hardware support for multiprocessor operation.

If you say N here, the kernel will run on single and multiprocessor machines, but will use only one CPU of a multiprocessor machine. If you say Y here, the kernel will run on single-processor machines. On a single-processor machine, the kernel will run faster if you say N here.

If you don't know what to do here, say N.

Symbol: SMP [=y]

Type : boolean

Prompt: Symmetric multi-processing support Defined at arch/powerpc/platforms/Kconfig.cputype:427

Depends on: PPC_BOOK3S [=n] || PPC_BOOK3E [=n] || FSL_BOOKE [=y] || PPC_47x [=n]

Location:

  -> Processor support    


0 项奖励
回复

2,326 次查看
arashaz_
Contributor II

Hi,

Thank you for your comment.

Yes. I  use Freescale LTIB. When I enable SMP (so the value is Y) in kernel configuration, I put  the number of CPUs equal to 2. When I disable it, the line to select the number of CPUs will not be there. In the latter case, the built uImage works fine.  As I explained, I can also build the Linux with SMP (2 CPUs) but pass "-nosmp" in U-boot boot args. It works fine.

Regards,

Arash


0 项奖励
回复