O que eu faço quando recebo um bug do kernel do Linux?

2

Acabei de comprar um minúsculo computador chamado fit-pc2 que veio com uma instalação Ubuntu 9.10 personalizada. uname -a reports:

Linux 2.6.31-34-fitpc2 #7 SMP Thu Apr 22 17:43:26 IDT 2010 i686 GNU/Linux

Parece que depois de várias horas de execução com carga de rede pesada, toda a rede é interrompida e recebo o seguinte em kern.log:

BUG: unable to handle kernel paging request at ff09dfc0
IP: [<c0150300>] kthread_should_stop+0x10/0x20
*pde = 00000000 
Oops: 0000 [#1] SMP 
last sysfs file: /sys/devices/pci0000:00/0000:00:1d.7/usb1/idVendor
Modules linked in: binfmt_misc ppdev sbc_fitpc2_wdt snd_usb_audio snd_usb_lib i2c_isch sch_gpio snd_seq_dummy snd_hda_intel snd_pcm_oss snd_seq_oss snd_seq_midi snd_rawmidi snd_mixer_oss snd_seq_midi_event snd_seq snd_pcm snd_timer snd_page_alloc snd_seq_device iptable_filter ip_tables x_tables snd_hwdep lpc_sch snd psmouse rt2860sta(C) uvcvideo video pl2303 soundcore mfd_core output videodev v4l1_compat lirc_igorplugusb lirc_dev serio_raw lp parport usbhid r8169 mii iegd_mod drm agpgart

Pid: 16, comm: kblockd/1 Tainted: G         C (2.6.31-34-fitpc2 #7) SBC-FITPC2
EIP: 0060:[<c0150300>] EFLAGS: 00010246 CPU: 1
EIP is at kthread_should_stop+0x10/0x20
EAX: ff09dfc4 EBX: c180cbac ECX: 0109d000 EDX: f709df98
ESI: f709df98 EDI: c180cba0 EBP: f709dfb8 ESP: f709df90
 DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
Process kblockd/1 (pid: 16, ti=f709c000 task=f7084b60 task.ti=f709c000)
Stack:
 c014c14d c180cba4 00000000 f7084b60 c0150770 f709dfa4 f709dfa4 f7023ef4
<0> c180cba0 c014c0d0 f709dfe0 c015047c 00000000 00000000 00000000 f709dfcc
<0> f709dfcc c0150400 00000000 00000000 00000000 c0103ce7 f7023ef4 00000000
Call Trace:
 [<c014c14d>] ? worker_thread+0x7d/0xe0
 [<c0150770>] ? autoremove_wake_function+0x0/0x40
 [<c014c0d0>] ? worker_thread+0x0/0xe0
 [<c015047c>] ? kthread+0x7c/0x90
 [<c0150400>] ? kthread+0x0/0x90
 [<c0103ce7>] ? kernel_thread_helper+0x7/0x10
Code: a6 8b 55 0c 8d 4d e0 89 f8 89 34 24 e8 7a fd ff ff 89 c3 eb 92 90 90 90 90 90 90 55 64 a1 00 80 76 c0 8b 80 70 02 00 00 89 e5 5d <8b> 40 fc c3 8d b6 00 00 00 00 8d bf 00 00 00 00 55 ba d7 86 62 
EIP: [<c0150300>] kthread_should_stop+0x10/0x20 SS:ESP 0068:f709df90
CR2: 00000000ff09dfc0
---[ end trace 06004df70b9cf435 ]---
BUG: unable to handle kernel paging request at ff09dfc8
IP: [<c0521bc8>] _spin_lock_irqsave+0x18/0x30
*pde = 00000000 
Oops: 0002 [#2] SMP 
last sysfs file: /sys/devices/pci0000:00/0000:00:1d.7/usb1/idVendor
Modules linked in: binfmt_misc ppdev sbc_fitpc2_wdt snd_usb_audio snd_usb_lib i2c_isch sch_gpio snd_seq_dummy snd_hda_intel snd_pcm_oss snd_seq_oss snd_seq_midi snd_rawmidi snd_mixer_oss snd_seq_midi_event snd_seq snd_pcm snd_timer snd_page_alloc snd_seq_device iptable_filter ip_tables x_tables snd_hwdep lpc_sch snd psmouse rt2860sta(C) uvcvideo video pl2303 soundcore mfd_core output videodev v4l1_compat lirc_igorplugusb lirc_dev serio_raw lp parport usbhid r8169 mii iegd_mod drm agpgart

Pid: 16, comm: kblockd/1 Tainted: G      D  C (2.6.31-34-fitpc2 #7) SBC-FITPC2
EIP: 0060:[<c0521bc8>] EFLAGS: 00010086 CPU: 1
EIP is at _spin_lock_irqsave+0x18/0x30
EAX: 00000100 EBX: ff09dfc8 ECX: 00000286 EDX: ff09dfc8
ESI: f7084b60 EDI: ff09dfc4 EBP: f709dd88 ESP: f709dd88
 DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
Process kblockd/1 (pid: 16, ti=f709c000 task=f7084b60 task.ti=f709c000)
Stack:
 f709dda4 c0127c0b 00000082 00000001 ff09dfc4 f7084b60 00000000 f709ddd0
<0> c0137fd2 00000086 f70954c4 00000000 f7098480 f709ddf0 f7094fc0 f7084b60
<0> 00000000 00000009 f709ddf0 c013c3f8 00000001 c1807c60 f709ddf0 f7084b60
Call Trace:
 [<c0127c0b>] ? complete+0x1b/0x60
 [<c0137fd2>] ? mm_release+0x52/0xf0
 [<c013c3f8>] ? exit_mm+0x18/0x110
 [<c013c6db>] ? do_exit+0xfb/0x2e0
 [<c013998a>] ? print_oops_end_marker+0x2a/0x30
 [<c0522aab>] ? oops_end+0x8b/0xd0
 [<c011eac4>] ? no_context+0xb4/0xd0
 [<c011eb1d>] ? __bad_area_nosemaphore+0x3d/0x1a0
 [<c0133a56>] ? load_balance_newidle+0x96/0x320
 [<c011ec92>] ? bad_area_nosemaphore+0x12/0x20
 [<c0524106>] ? do_page_fault+0x2f6/0x380
 [<c012cc30>] ? finish_task_switch+0x50/0xe0
 [<c0523e10>] ? do_page_fault+0x0/0x380
 [<c0522006>] ? error_code+0x66/0x70
 [<c0523e10>] ? do_page_fault+0x0/0x380
 [<c0150300>] ? kthread_should_stop+0x10/0x20
 [<c014c14d>] ? worker_thread+0x7d/0xe0
 [<c0150770>] ? autoremove_wake_function+0x0/0x40
 [<c014c0d0>] ? worker_thread+0x0/0xe0
 [<c015047c>] ? kthread+0x7c/0x90
 [<c0150400>] ? kthread+0x0/0x90
 [<c0103ce7>] ? kernel_thread_helper+0x7/0x10
Code: 00 00 00 55 89 e5 f0 83 28 01 79 05 e8 02 ff ff ff 5d c3 55 89 c2 89 e5 9c 58 8d 74 26 00 89 c1 fa 90 8d 74 26 00 b8 00 01 00 00 <f0> 66 0f c1 02 38 e0 74 06 f3 90 8a 02 eb f6 89 c8 5d c3 90 8d 
EIP: [<c0521bc8>] _spin_lock_irqsave+0x18/0x30 SS:ESP 0068:f709dd88
CR2: 00000000ff09dfc8
---[ end trace 06004df70b9cf436 ]---
Fixing recursive fault but reboot is needed!

Isso parece acontecer pelo menos uma vez por dia. Como eu começo a depurar isso?

    
por user2898 01.05.2010 / 05:19

4 respostas

2

link e link pode te ajudar um pouco

    
por 01.05.2010 / 06:22
0

Eu tenho exatamente o mesmo problema quando recompilei o kernel de estoque Lenny com CPU Atom e NIC RTL8168c / 8111c habilitado.

Depois de reverter para o kernel "ubuntu" fornecido pela Compulab, as mensagens do kernel foram embora. No entanto, a NIC ainda está perdendo a conexão quando o link está sob carga moderada, o que é um PITA real para servidores headless, que depois de todas essas caixas foram projetadas para!

Eu aconselharia qualquer um que planejasse executar o Linux nessas caixas para procurar outro lugar , já que essas caixas são muito instáveis no Linux . É melhor comprar algumas configurações padrão de mini-atx, já que a Compulab parece interessada em suportar o Linux, já que a ATI ou a FireDTV tem sido a última década.

    
por 11.07.2010 / 13:21
0

Simplificando, você limitou o uso de redes pesadas, então, eu diria, procure um driver de rede diferente / melhor / mais recente, pois o problema provavelmente está lá.

Se você não puder, eu entraria no BIOS e desabilitaria a interface de rede (se ela estiver incorporada) e compraria um cartão padrão não realtek e verificaria se você tem mais sorte com isso.

    
por 11.07.2010 / 14:00
0

Se você pagou dinheiro para um computador que vem com uma distribuição Linux personalizada instalada, incomode o fornecedor. Eu acredito que é o trabalho deles lidar com isso ou passar o relatório de erros para o desenvolvedor.

Se você está sozinho, é uma história diferente. Você tem muitas opções: alterar hardware, tentar criar outra versão do kernel, tentar depurar o problema sozinho, se tiver qualificação suficiente.

    
por 11.07.2010 / 14:13