안녕하세요. 인터럽트를 해결한지 얼마 되지도 않았는데 또 질문을 올립니다. 인터럽트 문제를 해결하고 다음과 같이 인터페이스를 올린후 ping을 날려 보았습니다.
root@godori:~# ifconfig eth0 192.168.1.150
[21474567.020000] [smc_open() S]
[21474567.020000] [smc_reset() S]
[21474567.020000] [smc_enable() S]
[21474567.025000] eth0:smc_program_phy()
[21474567.030000] eth0: PHY=LAN83C183 (LAN91C111 Internal)
[21474569.110000] [eth0: smc_phy_configure() E]
[21474569.110000] [smc_setmulticast() S]
[21474569.120000] [smc_setmulticast() S]
root@godori:~# ifconfig eth0 192.168.1.150 up
[21474574.030000] [smc_setmulticast() S]
[21474574.035000] [smc_setmulticast() S]
root@godori:~# ifconfig
eth0 Link encap:Ethernet HWaddr 12:34:56:65:41:81
inet addr:192.168.1.150 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:1 Base address:0x300
root@godori:~# ping 192.168.1.150
PING 192.168.1.150 (192.168.1.150): 56 data bytes
--- 192.168.1.150 ping statistics ---
1547 packets transmitted, 0 packets received, 100% packet loss
root@godori:~# ifconfig
eth0 Link encap:Ethernet HWaddr 12:34:56:65:41:81
inet addr:192.168.1.150 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:1 Base address:0x300
root@godori:~# ping localhost
PING localhost (127.0.0.1): 56 data bytes
ping: sendto: Network is unreachable
root@godori:~# ping 192.168.1.3
PING 192.168.1.3 (192.168.1.3): 56 data bytes
[ 1333.120000] [smc_wait_to_wend_packet() S]
[ 1337.630000] NETDEV WATCHDOG: eth0: transmit timed out
[ 1337.630000] [smc_timeout() S]
[ 1337.630000] eth0: transmit timed out, IRQ conflict?
[ 1337.635000] [smc_reset() S]
[ 1337.640000] [smc_enable() S]
[ 1337.640000] eth0:smc_program_phy()
[ 1337.645000] eth0: PHY=LAN83C183 (LAN91C111 Internal)
[ 1337.650000] scheduling while atomic: swapper/0x00000104/0
[ 1337.655000] [<c002b5b0>] (dump_stack+0x0/0x14) from [<c0223ce0>] (schedule+0x60/0x664)
[ 1337.660000] [<c0223c80>] (schedule+0x0/0x664) from [<c0224ffc>] (schedule_timeout+0x90/0xbc)
[ 1337.670000] [<c0224f6c>] (schedule_timeout+0x0/0xbc) from [<c01833bc>] (smc_wait_ms+0x84/0x98)
[ 1337.680000] r8 = F8000300 r7 = 00000000 r6 = C01C9224 r5 = C02F4894
[ 1337.685000] r4 = C0262000
[ 1337.690000] [<c0183338>] (smc_wait_ms+0x0/0x98) from [<c01834c0>] (smc_phy_configure+0x60/0x2b0)
[ 1337.695000] r4 = C0A46000
[ 1337.700000] [<c0183460>] (smc_phy_configure+0x0/0x2b0) from [<c0180b90>] (smc_timeout+0x40/0xe0)
[ 1337.710000] [<c0180b50>] (smc_timeout+0x0/0xe0) from [<c01c92b4>] (dev_watchdog+0x90/0x114)
[ 1337.715000] r5 = 00000103 r4 = C02F4894
[ 1337.720000] [<c01c9224>] (dev_watchdog+0x0/0x114) from [<c00493f8>] (run_timer_softirq+0x1a0/0x248)
[ 1337.730000] r4 = C0262000
[ 1337.730000] [<c0049258>] (run_timer_softirq+0x0/0x248) from [<c00448a0>] (__do_softirq+0x60/0xd4)
[ 1337.740000] [<c0044840>] (__do_softirq+0x0/0xd4) from [<c0044a40>] (irq_exit+0x44/0x58)
[ 1337.750000] r7 = 00000002 r6 = C0263F54 r5 = C02D7E5C r4 = 0000000E
[ 1337.755000] [<c00449fc>] (irq_exit+0x0/0x58) from [<c002708c>] (asm_do_IRQ+0x84/0x94)
[ 1337.760000] [<c0027008>] (asm_do_IRQ+0x0/0x94) from [<c0025938>] (__irq_svc+0x38/0x158)
[ 1337.770000] r6 = 00000001 r5 = C0263F88 r4 = FFFFFFFF
[ 1337.775000] [<c0027b20>] (default_idle+0x0/0x50) from [<c0027bc0>] (cpu_idle+0x50/0x88)
[ 1337.785000] [<c0027b70>] (cpu_idle+0x0/0x88) from [<c0025030>] (__init_end+0x30/0x38)
[ 1337.790000] r5 = C02D7738 r4 = 00000000
[ 1337.795000] [<c0025000>] (__init_end+0x0/0x38) from [<c000898c>] (start_kernel+0x18c/0x1d4)
[ 1337.805000] [<c0008800>] (start_kernel+0x0/0x1d4) from [<30008094>] (0x30008094)
[ 1337.810000] bad: scheduling from the idle thread!
[ 1337.815000] [<c002b5b0>] (dump_stack+0x0/0x14) from [<c0223d34>] (schedule+0xb4/0x664)
[ 1337.825000] [<c0223c80>] (schedule+0x0/0x664) from [<c0224ffc>] (schedule_timeout+0x90/0xbc)
[ 1337.830000] [<c0224f6c>] (schedule_timeout+0x0/0xbc) from [<c01833bc>] (smc_wait_ms+0x84/0x98)
[ 1337.840000] r8 = F8000300 r7 = 00000000 r6 = C01C9224 r5 = C02F4894
[ 1337.845000] r4 = C0262000
[ 1337.850000] [<c0183338>] (smc_wait_ms+0x0/0x98) from [<c01834c0>] (smc_phy_configure+0x60/0x2b0)
[ 1337.855000] r4 = C0A46000
[ 1337.860000] [<c0183460>] (smc_phy_configure+0x0/0x2b0) from [<c0180b90>] (smc_timeout+0x40/0xe0)
[ 1337.870000] [<c0180b50>] (smc_timeout+0x0/0xe0) from [<c01c92b4>] (dev_watchdog+0x90/0x114)
[ 1337.875000] r5 = 00000103 r4 = C02F4894
[ 1337.880000] [<c01c9224>] (dev_watchdog+0x0/0x114) from [<c00493f8>] (run_timer_softirq+0x1a0/0x248)
[ 1337.890000] r4 = C0262000
[ 1337.890000] [<c0049258>] (run_timer_softirq+0x0/0x248) from [<c00448a0>] (__do_softirq+0x60/0xd4)
[ 1337.900000] [<c0044840>] (__do_softirq+0x0/0xd4) from [<c0044a40>] (irq_exit+0x44/0x58)
[ 1337.910000] r7 = 00000002 r6 = C0263F54 r5 = C02D7E5C r4 = 0000000E
[ 1337.915000] [<c00449fc>] (irq_exit+0x0/0x58) from [<c002708c>] (asm_do_IRQ+0x84/0x94)
[ 1337.925000] [<c0027008>] (asm_do_IRQ+0x0/0x94) from [<c0025938>] (__irq_svc+0x38/0x158)
[ 1337.930000] r6 = 00000001 r5 = C0263F88 r4 = FFFFFFFF
[ 1337.935000] [<c0027b20>] (default_idle+0x0/0x50) from [<c0027bc0>] (cpu_idle+0x50/0x88)
[ 1337.945000] [<c0027b70>] (cpu_idle+0x0/0x88) from [<c0025030>] (__init_end+0x30/0x38)
[ 1337.950000] r5 = C02D7738 r4 = 00000000
[ 1337.955000] [<c0025000>] (__init_end+0x0/0x38) from [<c000898c>] (start_kernel+0x18c/0x1d4)
[ 1337.965000] [<c0008800>] (start_kernel+0x0/0x1d4) from [<30008094>] (0x30008094)
[ 1337.970000] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[ 1337.970000] pgd = c0004000
[ 1337.970000] [00000000] *pgd=00000000
[ 1337.970000] Internal error: Oops: 17 [#1]
[ 1337.970000] Modules linked in:
[ 1337.970000] CPU: 0
[ 1337.970000] PC is at dequeue_task+0xc/0x78
[ 1337.970000] LR is at deactivate_task+0x24/0x30
[ 1337.970000] pc : [<c003a16c>] lr : [<c003a518>] Not tainted
[ 1337.970000] sp : c0263dc0 ip : c0263dd0 fp : c0263dcc
[ 1337.970000] r10: 00000137 r9 : 853a0080 r8 : c0265330
[ 1337.970000] r7 : c0264b20 r6 : c0262000 r5 : c0262000 r4 : c0264b20
[ 1337.970000] r3 : ffffffff r2 : 00000000 r1 : 00000000 r0 : c0264b20
[ 1337.970000] Flags: Nzcv IRQs off FIQs on Mode SVC_32 Segment kernel
[ 1337.970000] Control: 717F Table: 37C38000 DAC: 00000017
[ 1337.970000] Process swapper (pid: 0, stack limit = 0xc0262194)
[ 1337.970000] Stack: (0xc0263dc0 to 0xc0264000)
[ 1337.970000] 3dc0: c0263de0 c0263dd0 c003a518 c003a170 00000137 c0263e20 c0263de4 c0223e60
[ 1337.970000] 3de0: c003a504 c0264b54 14dc9380 c0264c48 c0263e20 c0263e00 00041515 0000000b
[ 1337.970000] 3e00: c0262000 c0263e24 c0265330 c02f4894 00000000 c0263e60 c0263e24 c0224ffc
[ 1337.970000] 3e20: c0223c90 c02ea9a8 c02ea9a8 00041515 4b87ad6e c00496f0 c0264b20 c02ea8f8
[ 1337.970000] 3e40: c0262000 c02f4894 c01c9224 00000000 f8000300 c0263e74 c0263e64 c01833bc
[ 1337.970000] 3e60: c0224f7c c0a46000 c0263ea0 c0263e78 c01834c0 c0183348 c02f4894 c02f4894
[ 1337.970000] 3e80: c01c9224 c02ea8f8 c0263ed0 00000000 00000001 c0263eb8 c0263ea4 c0180b90
[ 1337.970000] 3ea0: c0183470 c02f4894 00000103 c0263ecc c0263ebc c01c92b4 c0180b60 c0262000
[ 1337.970000] 3ec0: c0263f04 c0263ed0 c00493f8 c01c9234 c0263ed0 c0263ed0 c003b240 00000001
[ 1337.970000] 3ee0: c02ea690 0000000a c02ea660 00000001 c0262000 3001eb1c c0263f24 c0263f08
[ 1337.970000] 3f00: c00448a0 c0049268 0000000e c02d7e5c c0263f54 00000002 c0263f34 c0263f28
[ 1337.970000] 3f20: c0044a40 c0044850 c0263f50 c0263f38 c002708c c0044a0c ffffffff c0263f88
[ 1337.970000] 3f40: 00000001 c0263fa8 c0263f54 c0025938 c0027018 00000001 ffffffff f040000c
[ 1337.970000] 3f60: 80000013 c0262000 c0027b20 c02ece80 c02fcec8 3001eb4c 41129200 3001eb1c
[ 1337.970000] 3f80: c0263fa8 c0263f8c c0263f9c c0027a40 c0027b68 80000013 ffffffff c0263fc0
[ 1337.970000] 3fa0: c0263fac c0027bc0 c0027b30 00000000 c02d7738 c0263fd0 c0263fc4 c0025030
[ 1337.970000] 3fc0: c0027b80 c0263ff4 c0263fd4 c000898c c0025010 c0008514 c02d8aa8 00007175
[ 1337.970000] 3fe0: c02d8a1c c0265064 00000000 c0263ff8 30008094 c0008810 00000000 00000000
[ 1337.970000] Backtrace:
[ 1337.970000] [<c003a160>] (dequeue_task+0x0/0x78) from [<c003a518>] (deactivate_task+0x24/0x30)
[ 1337.970000] [<c003a4f4>] (deactivate_task+0x0/0x30) from [<c0223e60>] (schedule+0x1e0/0x664)
[ 1337.970000] r4 = 00000137
[ 1337.970000] [<c0223c80>] (schedule+0x0/0x664) from [<c0224ffc>] (schedule_timeout+0x90/0xbc)
[ 1337.970000] [<c0224f6c>] (schedule_timeout+0x0/0xbc) from [<c01833bc>] (smc_wait_ms+0x84/0x98)
[ 1337.970000] r8 = F8000300 r7 = 00000000 r6 = C01C9224 r5 = C02F4894
[ 1337.970000] r4 = C0262000
[ 1337.970000] [<c0183338>] (smc_wait_ms+0x0/0x98) from [<c01834c0>] (smc_phy_configure+0x60/0x2b0)
[ 1337.970000] r4 = C0A46000
[ 1337.970000] [<c0183460>] (smc_phy_configure+0x0/0x2b0) from [<c0180b90>] (smc_timeout+0x40/0xe0)
[ 1337.970000] [<c0180b50>] (smc_timeout+0x0/0xe0) from [<c01c92b4>] (dev_watchdog+0x90/0x114)
[ 1337.970000] r5 = 00000103 r4 = C02F4894
[ 1337.970000] [<c01c9224>] (dev_watchdog+0x0/0x114) from [<c00493f8>] (run_timer_softirq+0x1a0/0x248)
[ 1337.970000] r4 = C0262000
[ 1337.970000] [<c0049258>] (run_timer_softirq+0x0/0x248) from [<c00448a0>] (__do_softirq+0x60/0xd4)
[ 1337.970000] [<c0044840>] (__do_softirq+0x0/0xd4) from [<c0044a40>] (irq_exit+0x44/0x58)
[ 1337.970000] r7 = 00000002 r6 = C0263F54 r5 = C02D7E5C r4 = 0000000E
[ 1337.970000] [<c00449fc>] (irq_exit+0x0/0x58) from [<c002708c>] (asm_do_IRQ+0x84/0x94)
[ 1337.970000] [<c0027008>] (asm_do_IRQ+0x0/0x94) from [<c0025938>] (__irq_svc+0x38/0x158)
[ 1337.970000] r6 = 00000001 r5 = C0263F88 r4 = FFFFFFFF
[ 1337.970000] [<c0027b20>] (default_idle+0x0/0x50) from [<c0027bc0>] (cpu_idle+0x50/0x88)
[ 1337.970000] [<c0027b70>] (cpu_idle+0x0/0x88) from [<c0025030>] (__init_end+0x30/0x38)
[ 1337.970000] r5 = C02D7738 r4 = 00000000
[ 1337.970000] [<c0025000>] (__init_end+0x0/0x38) from [<c000898c>] (start_kernel+0x18c/0x1d4)
[ 1337.970000] [<c0008800>] (start_kernel+0x0/0x1d4) from [<30008094>] (0x30008094)
[ 1337.970000] Code: e91ba800 e1a0c00d e92dd800 e24cb004 (e5913000)
[ 1337.970000] <0>Kernel panic - not syncing: Aiee, killing interrupt handler!
[ 1337.975000]
"[ 함수명() ]" 이런식으로 나오는 것은 제가 디버깅 메시지 찍어 준 겁니다.
사실 어느 쪽부터 잡아야 하는지 잘 모르겠습니다. 방향을 집어 주시면 열심히 파보겠습니다. 조언 부탁 드립니다.
커널도 관련이 있을 듯 하고요...커널 버전은요? 2.6인 듯 싶긴 하지만요.
난감한 케이스인데....
제가 회로도랑 여러가지를 파악하기 전에는 애매하네요...
aesop용을 올릴랬더니....분산되어 있어서 여러가지를 올려야 하네요.
난감....
지금상황으로는 schedule쪽에 문제가 있는 것인데, 이런 경우 이유가 굉장히 많습니다.
예를 들어서 timer interrupt service routine안에서 sleep()을
했다던가 하는 경우입니다. 지금 메세지도 그런 경우와 비슷한데...
봐보기전에는 뭐라고 말씀 드리기가 애매하네요.