web-dev-qa-db-ja.com

無効なオペコード0000

ランダムに(通常、XBMCで映画を見るとき)、コンピューターがロックします。時々SSHでログインし、「dmesg」出力を取得してからロックすることもできます。通常、物事を再開するにはハードリブートが必要です。読みやすくするために日付/時刻/サーバーの列を切り取りました。これらが関連する省略のように見えるかどうか尋ねてください...

システム:Ubuntu 11.04(2.6.38-8-server)x64 X11とIceWm(およびXBMC)Core 2 Duo E8400 @ 3.00GHz 8 GB RAM Asus P5Qプレミアムマザーボードプライマリハードドライブ:OCZ Vertex 2 60 GB (SSD)その他のハードドライブ:さまざまな750GB、1TB、1.5TBおよび2TB(WDおよびsamsung)

私が提供していない重要な情報は、純粋にこれらの問題に対する私の無能の兆候です。

 invalid opcode: 0000 [#1] SMP
 last sysfs file: /sys/devices/system/cpu/cpu1/cache/index2/shared_cpu_map
 CPU 0
 Modules linked in: parport_pc ppdev vesafb snd_hda_codec_analog tuner_simple tuner_types wm8775 tda9887 tda8290 tea5767 tuner cx25840 ir_lirc_codec lirc_dev snd_hda_intel snd_hda_codec snd_hwdep snd_pcm ir_sony_decoder snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq rc_rc6_mce ivtv ir_jvc_decoder cx2341x i2c_algo_bit v4l2_common mceusb videodev ir_rc6_decoder ir_rc5_decoder snd_timer ir_nec_decoder nvidia(P) btusb bluetooth rc_core v4l2_compat_ioctl32 tveeprom snd_seq_device pata_marvell psmouse shpchp serio_raw snd asus_atk0110 soundcore snd_page_alloc lp parport firewire_ohci firewire_core crc_itu_t r8169 sky2 ahci libahci

 Pid: 4597, comm: xbmc.bin Tainted: P            2.6.38-8-server #42-Ubuntu System manufacturer P5Q Premium/P5Q Premium
 RIP: 0010:[<ffffffff8119bc4a>]  [<ffffffff8119bc4a>] do_mpage_readpage+0x9a/0x510
 RSP: 0018:ffff88021f5a59d8  EFLAGS: 00210246
 RAX: 0000000000000020 RBX: ffff88021f5a5ac8 RCX: 0000000000000000
 RDX: 0000000000000001 RSI: 0000000015e36fe0 RDI: 0000000000000000
 RBP: ffff88021f5a5a98 R08: ffff88021f5a5ac8 R09: ffff88021f5a5b38
 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
 R13: 000000000000b148 R14: 0000000000000001 R15: ffff8802067034b8
 FS:  00007f3f34eb1700(0000) GS:ffff8800cfc00000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 00007feb8d515000 CR3: 000000021d744000 CR4: 00000000000406f0
 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
 Process xbmc.bin (pid: 4597, threadinfo ffff88021f5a4000, task ffff88021f63db80)
 Stack:
  ffff88021f5a5a28 ffffffff8116019d ffff88021f5a5b40 0000002000000003
  ffff88021f5a5b38 ffff880206703370 ffffea0006d800f8 0000000000000000
  ffffea0006d800f8 0000000c811270b5 ffff88021f5a5a68 ffffffff8110bdba
 Call Trace:
  [<ffffffff8116019d>] ? mem_cgroup_cache_charge+0xed/0x130
  [<ffffffff8110bdba>] ? add_to_page_cache_locked+0xea/0x160
  [<ffffffff8119c232>] mpage_readpages+0x102/0x150
  [<ffffffff812063e0>] ? ext4_get_block+0x0/0x20
  [<ffffffff812063e0>] ? ext4_get_block+0x0/0x20
  [<ffffffff81149475>] ? alloc_pages_current+0xa5/0x110
  [<ffffffff8120157d>] ext4_readpages+0x1d/0x20
  [<ffffffff81116a9b>] __do_page_cache_readahead+0x14b/0x220
  [<ffffffff81116ed1>] ra_submit+0x21/0x30
  [<ffffffff81116ff5>] ondemand_readahead+0x115/0x230
  [<ffffffff811171a0>] page_cache_async_readahead+0x90/0xc0
  [<ffffffff8110b184>] ? file_read_actor+0xd4/0x170
  [<ffffffff812de72e>] ? radix_tree_lookup_slot+0xe/0x10
  [<ffffffff8110c521>] do_generic_file_read.clone.23+0x271/0x450
  [<ffffffff8110d1ba>] generic_file_aio_read+0x1ca/0x240
  [<ffffffff8100a82e>] ? __switch_to+0x20e/0x2f0
  [<ffffffff81164c82>] do_sync_read+0xd2/0x110
  [<ffffffff8108b61c>] ? hrtimer_try_to_cancel+0x4c/0xe0
  [<ffffffff81279083>] ? security_file_permission+0x93/0xb0
  [<ffffffff81164fa1>] ? rw_verify_area+0x61/0xf0
  [<ffffffff81165463>] vfs_read+0xc3/0x180
  [<ffffffff81165571>] sys_read+0x51/0x90
  [<ffffffff8100bfc2>] system_call_fastpath+0x16/0x1b
 Code: ff ff 48 c7 85 78 ff ff ff 00 00 00 00 49 d3 ee b9 0c 00 00 00 2b 4d 8c 48 8b b2 c8 00 00 00 ba 01 00 00 00 41 0f af c6 49 d3 e5 <0f> 36 4d 8c 4c 01 e8 d3 e2 4c 8d 44 16 ff 48 8b 53 20 49 d3 f8
 RIP  [<ffffffff8119bc4a>] do_mpage_readpage+0x9a/0x510
  RSP <ffff88021f5a59d8>
 ---[ end trace ac6cd2f4692205a3 ]---

エラーはdo_mpage_readpage+0x9a/0x510で常に同じ番号で発生することに注意してください。私はこれらの可能な意味を考え出そうとしましたが、それ以上手に入れることができませんでした。
コールトレースの一番上のブロックは、まったく同じ番号の次のブロックであることに注意してください。

  [<ffffffff8116019d>] ? mem_cgroup_cache_charge+0xed/0x130
  [<ffffffff8110bdba>] ? add_to_page_cache_locked+0xea/0x160
  [<ffffffff8119c232>] mpage_readpages+0x102/0x150
  [<ffffffff812063e0>] ? ext4_get_block+0x0/0x20
  [<ffffffff812063e0>] ? ext4_get_block+0x0/0x20

これは、ハードドライブの問題、RAMの問題、またはその他の何かを示している可能性がありますか?

3
Mr47

やっとクラッシュすることなく、マシンを実行できるようになりました。 BIOSで電源管理オプションをオフにすると、エラーが発生しなくなりました。
C1E、Intel SpeedStep、Intel C-State techを無効にした後、マシンは2か月以上クラッシュしていません。
ご協力ありがとうございました!

1
Mr47

このバグをxbmcに報告しましたか?

「無効なオペコード」はCPU例外で、通常はxbmcがクラッシュするはずです。システム全体を取り出すのは少し奇妙です。

CPU例外は、プロセスが実行すべきでないことを実行しようとするとスローされます。この場合、プロセスが実行しようとしているメモリ位置(仮想アドレスは解読できなかった番号で示されます)に無効な命令(0x0000など)が含まれているか、おそらく無効な(コード)メモリのセクション(おそらくどこかの不良な関数ポインター)。 CPUの例外は常にスローされ(たとえば、ゼロ除算はOSがキャッチする標準例外です)、例外は通常、OSによって処理される(プロセスを強制終了するか、問題を処理する)か、無視されます。次の2つの事実は、それがおそらくハードウェア障害ではなく、おそらくどこかのバグであることを示しています。

  • スローするエラーの点で一貫しており、同じ(仮想-推測)メモリ位置
  • その再現性

ハードウェア障害は通常、これよりもはるかに散発的であるか、特定のハードウェアに関連付けられています(USBにアクセスするたびにクラッシュするなど)

以前にウィンドウを使用した場合、CPU例外(および解決できなかった他の例外)は通常、悪名高い「プログラムが不正な操作を実行しました」というメッセージを表示します。

2
crasic