Power PC TRAP - 0700 - 커널 메모리 문제가 있습니까?

Power PC TRAP - 0700 - 커널 메모리 문제가 있습니까?

nfs 루트 파일 시스템을 사용하여 커널을 부팅하려고 합니다. 메모리 문제가 있는 것 같아요. 내 커널 버전은 4.12.28입니다. 이 버전에는 캐싱이 많이 변경되었습니다. 커널 메모리가 올바르게 초기화되지 않은 것 같습니다. 이 버전은 Yocto Sumo 및 DTC 버전 4.7을 사용합니다. 이는 Power PC 32비트 아키텍처입니다. 여기에 .config 파일을 공유했습니다. 문제가 무엇인지, 어디를 봐야할지 잘 모르겠습니다.

QUOTA를 활성화했는데 이것이 유용하다고 생각하지 않습니다. 시스템에는 512MB RAM이 있습니다. 그래서 나는 그것이 메모리 부족이라고 의심하지 않습니다. dcache_bsize와 icache_bsize가 충분합니까? 여기에 분명한 것이 빠져 있습니까?

여기 로그가 있습니다 -

       *## Booting kernel from Legacy Image at f8100000 ...
           Image Name:   Linux-4.12.28
           Created:      2019-07-22   7:01:05 UTC
           Image Type:   PowerPC Linux Kernel Image (gzip compressed)
           Data Size:    3683596 Bytes = 3.5 MiB
           Load Address: 00000000
           Entry Point:  00000000
           Verifying Checksum ... OK
        ## Flattened Device Tree blob at f8000000
           Booting using the fdt blob at 0xf8000000
           Uncompressing Kernel Image ... OK
           Loading Device Tree to 007fb000, end 007ff8e8 ... OK
        Linux version 4.12.28 (oe-user@oe-host) (gcc version 7.3.0 (GCC) ) #1 Mon Jul 22 00:42:12 UTC 2019
        Using MPC837x RDB/WLAN machine description
        bootconsole [udbg0] enabled
        -----------------------------------------------------
        Hash_size         = 0x0
        phys_mem_size     = 0x20000000
        dcache_bsize      = 0x20
        icache_bsize      = 0x20
        cpu_features      = 0x0000000000020460
          possible        = 0x0000000005a6fd77
          always          = 0x0000000000020000
        cpu_user_features = 0x8c000000 0x00000000
        mmu_features      = 0x00210000
        -----------------------------------------------------
        mpc83xx_setup_arch()
        Zone ranges:
          DMA      [mem 0x0000000000000000-0x000000001fffffff]
          Normal   empty
        Movable zone start for each node
        Early memory node ranges
          node   0: [mem 0x0000000000000000-0x000000001fffffff]
        Initmem setup node 0 [mem 0x0000000000000000-0x000000001fffffff]
        Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
        Kernel command line: console=ttyS1,115200 root=/dev/nfs rw ip=dhcp nfsroot=11.12.98.2:/home/sh/server_rootfs
        PID hash table entries: 2048 (order: 1, 8192 bytes)
        Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
        Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
        Memory: 512064K/524288K available (5852K kernel code, 248K rwdata, 1200K rodata, 172K init, 166K bss, 12224K reserved, 0K cma-reserved)
        Kernel virtual memory layout:
          * 0xfffdf000..0xfffff000  : fixmap
          * 0xfdffd000..0xfe000000  : early ioremap
          * 0xe1000000..0xfdffd000  : vmalloc & ioremap
        NR_IRQS:512 nr_irqs:512 16
        IPIC (128 IRQ sources) at e1000700
        clocksource: timebase: mask: 0xffffffffffffffff max_cycles: 0x12049cd416, max_idle_ns: 440795202745 ns
        clocksource: timebase mult[ccccccd] shift[24] registered
        pid_max: default: 32768 minimum: 301
       Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
Oops: Exception in kernel mode, sig: 4 [#1]
MPC837x RDB/WLAN
Modules linked in:
CPU: 0 PID: 0 Comm: swapper Not tainted 4.12.28-sira-standard #1
task: c06772f0 task.stack: c06a6000
NIP: c01000fc LR: c013f414 CTR: 00000005
REGS: c06a7ce0 TRAP: 0700   Not tainted  (4.12.28-sira-standard)
MSR: 00089032 <EE,ME,IR,DR,RI>
  CR: 24028244  XER: 20000000

GPR00: c013f2e8 c06a7d90 c06772f0 df004e98 00000008 00000001 00000006 00000008
GPR08: 00000000 00000000 00000000 007a1200 84028242 00040000 00000000 00000001
GPR16: 00800300 df416a60 1ffbf05c df414e80 c067c480 ffffffff 00000001 00000000
GPR24: c06c0000 00000000 df416c10 00000000 c013f440 00400000 c0683ba8 df004e98
NIP [c01000fc] set_nlink+0x0/0x58
LR [c013f414] proc_get_inode+0x164/0x190
Call Trace:
[c06a7d90] [c013f2e8] proc_get_inode+0x38/0x190 (unreliable)
[c06a7db0] [c013f4e0] proc_fill_super+0xa0/0x124
[c06a7dd0] [c00e5914] mount_ns+0xa8/0x184
[c06a7e00] [c00e6728] mount_fs+0x24/0xb4
[c06a7e20] [c010581c] vfs_kern_mount.part.8+0x5c/0x158
[c06a7e50] [c0105950] kern_mount_data+0x24/0x50
[c06a7e60] [c013f960] pid_ns_prepare_proc+0x28/0x50
[c06a7e80] [c003e284] alloc_pid+0x4d4/0x4f8
[c06a7ee0] [c0022500] copy_process.isra.7.part.8+0x914/0x12a4
[c06a7f60] [c0023328] _do_fork+0xbc/0x300
[c06a7fa0] [c000409c] rest_init+0x24/0x78
[c06a7fb0] [c06499a0] start_kernel+0x304/0x330
[c06a7ff0] [00003438] 0x3438
Instruction dump:
5cec9cb4 15d573b4 01320182 c865c007 4700e2e1 9303fa22 2f6abc88 24d19205
925583f0 7e007927 f2207002 52600025 <116b5917> 21758908 ac204100 002054e1
---[ end trace 0000000000000000 ]---

Kernel panic - not syncing: Attempted to kill the idle task!
Rebooting in 180 seconds..


I want this to mount nfs root file system and run the /sbin/init successfully.*

이것이 기본 구성입니다.

[https://docs.google.com/document/d/11XpGHxtEhP9DezyNPYiPqIuPhIpa7y0zF_o4Pl6QkZQ/edit?usp=sharing][커널구성]

답변1

커널에서 불법 명령 예외가 발생한 것 같습니다( 700예외는 Program여러 가지 이유가 있을 수 있지만 실제로 sig: 4는 그렇습니다 SIGILL).

코어에는 구현되지 않은 명령어가 많이 있습니다 e300. 커널을 빌드하는 데 사용된 컴파일러가 올바른지, 올바른 명령줄 옵션이 사용되었는지, 올바른 CPU 옵션이 선택되었는지 다시 확인하세요 .config. 칩을 모릅니다).

읽다이것도움이 될 수 있습니다(제가 찾은 무작위 기사). 부록 B를 확인하세요.e300coreRM.pdf.

[id]cache_bsize명령 및 데이터 캐시의 캐시 블록(일명 ​​라인) 크기입니다. 0x20(32바이트)은 이러한 유형의 프로세서에 적합한 값인 것 같습니다.

관련 정보