Autor Thema: System-Freeze unter Ubuntu  (Gelesen 18353 mal)

dsteinwe

  • Newbie
  • *
  • Beiträge: 8
    • Profil anzeigen
System-Freeze unter Ubuntu
« am: Juli 14, 2014, 05:28:37 Nachmittag »
Hallo,

ich bin bei meinem MediaCenter vor kurzem von analogen auf digitalen Kabelempfang umgestiegen. Erfreulicherweise konnte ich die Sticks erfolgreich mit MythTv unter Ubuntu 14.04 an den Start bringen. Leider habe ich seit dem Umbau täglich mindestens einen System-Freeze. Häufiges Zappen scheint die Zeit zum nächsten System-Freeze zu verkürzen. Um die Ursache einzugrenzen, habe ich per Remote-Connection das syslog verfolgt und vor dem Freeze folgende Meldung erhalten:

Jul 11 22:46:53 mc kernel: [10782.851975] WARNING: CPU: 3 PID: 3951 at /build/buildd/linux-3.13.0/drivers/usb/host/xhci-ring.c:575 xhci_find_new_dequeue_state+0xc5/0x320()
Jul 11 22:46:53 mc kernel: [10782.851977] Modules linked in: usb_storage pci_stub vboxpci(OF) vboxnetadp(OF) vboxnetflt(OF) vboxdrv(OF) bridge snd_oxygen snd_oxygen_lib stp llc snd_mpu401_uart snd_pcm snd_page_alloc snd_seq_midi snd_seq_midi_event snd_rawmidi snd_seq snd_seq_device snd_timer snd soundcore joydev x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd serio_raw lpc_ich shpchp fujitsu_laptop rfcomm parport_pc i915 bnep video drm_kms_helper mei_me ppdev mei bluetooth drm tpm_infineon i2c_algo_bit mac_hid lp parport binfmt_misc hid_sunplus psmouse ahci libahci e1000e usbhid ptp hid pps_core
Jul 11 22:46:53 mc kernel: [10782.852021] CPU: 3 PID: 3951 Comm: mediasrv Tainted: GF          O 3.13.0-30-generic #55-Ubuntu
Jul 11 22:46:53 mc kernel: [10782.852023] Hardware name: FUJITSU D3222-B1/D3222-B1, BIOS V4.6.5.4 R1.10.0 for D3222-B1x 09/16/2013
Jul 11 22:46:53 mc kernel: [10782.852025]  0000000000000009 ffff8803e1337c40 ffffffff8171a324 0000000000000000
Jul 11 22:46:53 mc kernel: [10782.852028]  ffff8803e1337c78 ffffffff810676bd ffff88040742c000 ffff8803e1337ce8
Jul 11 22:46:53 mc kernel: [10782.852031]  ffff880403f4a000 ffff8801153b96c0 0000000000000002 ffff8803e1337c88
Jul 11 22:46:53 mc kernel: [10782.852033] Call Trace:
Jul 11 22:46:53 mc kernel: [10782.852039]  [<ffffffff8171a324>] dump_stack+0x45/0x56
Jul 11 22:46:53 mc kernel: [10782.852043]  [<ffffffff810676bd>] warn_slowpath_common+0x7d/0xa0
Jul 11 22:46:53 mc kernel: [10782.852045]  [<ffffffff8106779a>] warn_slowpath_null+0x1a/0x20
Jul 11 22:46:53 mc kernel: [10782.852048]  [<ffffffff81575375>] xhci_find_new_dequeue_state+0xc5/0x320
Jul 11 22:46:53 mc kernel: [10782.852052]  [<ffffffff8156d06c>] xhci_cleanup_stalled_ring+0x6c/0x200
Jul 11 22:46:53 mc kernel: [10782.852054]  [<ffffffff815747aa>] ? queue_command+0x7a/0xd0
Jul 11 22:46:53 mc kernel: [10782.852057]  [<ffffffff8156d32e>] xhci_endpoint_reset+0x12e/0x1a0
Jul 11 22:46:53 mc kernel: [10782.852061]  [<ffffffff81540535>] usb_hcd_reset_endpoint+0x25/0x70
Jul 11 22:46:53 mc kernel: [10782.852064]  [<ffffffff81543535>] usb_enable_endpoint+0x85/0x90
Jul 11 22:46:53 mc kernel: [10782.852067]  [<ffffffff81543582>] usb_enable_interface+0x42/0x60
Jul 11 22:46:53 mc kernel: [10782.852070]  [<ffffffff815437af>] usb_set_interface+0x20f/0x360
Jul 11 22:46:53 mc kernel: [10782.852073]  [<ffffffff8154d98b>] usbdev_do_ioctl+0x8eb/0xf30
Jul 11 22:46:53 mc kernel: [10782.852076]  [<ffffffff8154dffe>] usbdev_ioctl+0xe/0x20
Jul 11 22:46:53 mc kernel: [10782.852080]  [<ffffffff811cfa20>] do_vfs_ioctl+0x2e0/0x4c0
Jul 11 22:46:53 mc kernel: [10782.852084]  [<ffffffff8109dd94>] ? vtime_account_user+0x54/0x60
Jul 11 22:46:53 mc kernel: [10782.852086]  [<ffffffff811cfc81>] SyS_ioctl+0x81/0xa0
Jul 11 22:46:53 mc kernel: [10782.852090]  [<ffffffff8172aeff>] tracesys+0xe1/0xe6
Jul 11 22:46:53 mc kernel: [10782.852092] ---[ end trace 7df82076228bf14c ]---
Jul 11 22:46:53 mc kernel: [10782.852099] BUG: unable to handle kernel NULL pointer dereference at 0000000000000010
Jul 11 22:46:53 mc kernel: [10782.852143] IP: [<ffffffff8157564d>] xhci_queue_new_dequeue_state+0x7d/0x1e0
Jul 11 22:46:53 mc kernel: [10782.852178] PGD d1377067 PUD ce8ad067 PMD 0
Jul 11 22:46:53 mc kernel: [10782.852203] Oops: 0000 [#1] SMP
Jul 11 22:46:53 mc kernel: [10782.852222] Modules linked in: usb_storage pci_stub vboxpci(OF) vboxnetadp(OF) vboxnetflt(OF) vboxdrv(OF) bridge snd_oxygen snd_oxygen_lib stp llc snd_mpu401_uart snd_pcm snd_page_alloc snd_seq_midi snd_seq_midi_event snd_rawmidi snd_seq snd_seq_device snd_timer snd soundcore joydev x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd serio_raw lpc_ich shpchp fujitsu_laptop rfcomm parport_pc i915 bnep video drm_kms_helper mei_me ppdev mei bluetooth drm tpm_infineon i2c_algo_bit mac_hid lp parport binfmt_misc hid_sunplus psmouse ahci libahci e1000e usbhid ptp hid pps_core
Jul 11 22:46:53 mc kernel: [10782.852591] CPU: 3 PID: 3951 Comm: mediasrv Tainted: GF       W  O 3.13.0-30-generic #55-Ubuntu
Jul 11 22:46:53 mc kernel: [10782.852630] Hardware name: FUJITSU D3222-B1/D3222-B1, BIOS V4.6.5.4 R1.10.0 for D3222-B1x 09/16/2013
Jul 11 22:46:53 mc kernel: [10782.852672] task: ffff8803e465dfc0 ti: ffff8803e1336000 task.ti: ffff8803e1336000
Jul 11 22:46:53 mc kernel: [10782.852705] RIP: 0010:[<ffffffff8157564d>]  [<ffffffff8157564d>] xhci_queue_new_dequeue_state+0x7d/0x1e0
Jul 11 22:46:53 mc kernel: [10782.852751] RSP: 0018:ffff8803e1337c70  EFLAGS: 00010046
Jul 11 22:46:53 mc kernel: [10782.852775] RAX: 0000000000000000 RBX: 0000000000000001 RCX: 0000000000000000
Jul 11 22:46:53 mc kernel: [10782.852807] RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff88040742c000
Jul 11 22:46:53 mc kernel: [10782.852839] RBP: ffff8803e1337cd0 R08: ffff8803e1337ce8 R09: ffff88040742c000
Jul 11 22:46:53 mc kernel: [10782.852870] R10: 0000000000000000 R11: ffff8803e133796e R12: ffff880403f4a1f8
Jul 11 22:46:53 mc kernel: [10782.852902] R13: 0000000000000002 R14: ffff8803e1337ce8 R15: ffff88040742c000
Jul 11 22:46:53 mc kernel: [10782.852935] FS:  00007fdeb4857700(0000) GS:ffff88041e380000(0000) knlGS:0000000000000000
Jul 11 22:46:53 mc kernel: [10782.852970] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Jul 11 22:46:53 mc kernel: [10782.852996] CR2: 0000000000000010 CR3: 00000000cea00000 CR4: 00000000001407e0
Jul 11 22:46:53 mc kernel: [10782.853028] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Jul 11 22:46:53 mc kernel: [10782.853060] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Jul 11 22:46:53 mc kernel: [10782.853084] Stack:
Jul 11 22:46:53 mc kernel: [10782.853093]  ffff8803e1337c78 ffff880300000018 ffff8803e1337ce0 ffff8803e1337c90
Jul 11 22:46:53 mc kernel: [10782.853116]  ffffffff81575375 ffff880300000000 0000000200000002 ffff88040742c000
Jul 11 22:46:53 mc kernel: [10782.853137]  0000000000000002 ffff880403f4a1f8 ffff88040747c000 ffff880403f4a1f8
Jul 11 22:46:53 mc kernel: [10782.853158] Call Trace:
Jul 11 22:46:53 mc kernel: [10782.853166]  [<ffffffff81575375>] ? xhci_find_new_dequeue_state+0xc5/0x320
Jul 11 22:46:53 mc kernel: [10782.853185]  [<ffffffff8156d1c2>] xhci_cleanup_stalled_ring+0x1c2/0x200
Jul 11 22:46:53 mc kernel: [10782.853201]  [<ffffffff815747aa>] ? queue_command+0x7a/0xd0
Jul 11 22:46:53 mc kernel: [10782.853216]  [<ffffffff8156d32e>] xhci_endpoint_reset+0x12e/0x1a0
Jul 11 22:46:53 mc kernel: [10782.853232]  [<ffffffff81540535>] usb_hcd_reset_endpoint+0x25/0x70
Jul 11 22:46:53 mc kernel: [10782.853248]  [<ffffffff81543535>] usb_enable_endpoint+0x85/0x90
Jul 11 22:46:53 mc kernel: [10782.853264]  [<ffffffff81543582>] usb_enable_interface+0x42/0x60
Jul 11 22:46:53 mc kernel: [10782.853280]  [<ffffffff815437af>] usb_set_interface+0x20f/0x360
Jul 11 22:46:53 mc kernel: [10782.853295]  [<ffffffff8154d98b>] usbdev_do_ioctl+0x8eb/0xf30
Jul 11 22:46:53 mc kernel: [10782.853310]  [<ffffffff8154dffe>] usbdev_ioctl+0xe/0x20
Jul 11 22:46:53 mc kernel: [10782.853324]  [<ffffffff811cfa20>] do_vfs_ioctl+0x2e0/0x4c0
Jul 11 22:46:53 mc kernel: [10782.853339]  [<ffffffff8109dd94>] ? vtime_account_user+0x54/0x60
Jul 11 22:46:53 mc kernel: [10782.853354]  [<ffffffff811cfc81>] SyS_ioctl+0x81/0xa0
Jul 11 22:46:53 mc kernel: [10782.853368]  [<ffffffff8172aeff>] tracesys+0xe1/0xe6
Jul 11 22:46:53 mc kernel: [10782.853381] Code: 00 48 85 c9 0f 84 74 01 00 00 4c 89 ce 48 89 cf 89 55 b4 4c 89 4d b8 48 89 4d c0 e8 0e f7 ff ff 48 8b 4d c0 4c 8b 4d b8 8b 55 b4 <4c> 8b 41 10 48 c7 c6 90 4a 57 81 89 54 24 08 48 89 04 24 48 c7
Jul 11 22:46:53 mc kernel: [10782.853475] RIP  [<ffffffff8157564d>] xhci_queue_new_dequeue_state+0x7d/0x1e0
Jul 11 22:46:53 mc kernel: [10782.853494]  RSP <ffff8803e1337c70>
Jul 11 22:46:53 mc kernel: [10782.853503] CR2: 0000000000000010
Jul 11 22:46:53 mc kernel: [10782.858097] ---[ end trace 7df82076228bf14d ]---

Da als verursachender Prozess "mediasrv" ausgegeben wird, hoffe ich, hier Hilfe zu erhalten. Es scheint auch einen Unterschied zu machen, ob ich einen oder zwei MediaTV Pro Sticks betreibe. Ich benutze die Version 2 nun problemlos 2 Tage. Ob es einen Unterschied zwischen Version 2 und 3 gibt, beobachte ich gerade. In circa 2-3 Tagen kann ich dazu mehr sagen.

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8604
    • Profil anzeigen
Re:System-Freeze unter Ubuntu
« Antwort #1 am: Juli 14, 2014, 06:04:32 Nachmittag »
Die Ursache ist der Linux USB 3.0 Controller Treiber, unser Treiber kann keine Kernelprobleme verursachen da dieser lediglich eine Applikation ist.

Das ist der Fehler im Kernel:
BUG: unable to handle kernel NULL pointer dereference at 0000000000000010
Es wird an einer Stelle nicht überprüft ob die Datenstruktur vorhanden ist, und das warscheinlich in der Funktion xhci_find_new_dequeue_state


Abhilfe würde dir derzeit ein externes Betreiben des Tuners bringen. Sofern du ein Linux NAS mit USB 2.0 oder einen Linux Router mit USB 2.0 hast könnte das Abhilfe schaffen.
Netzwerkbetrieb:
http://support.sundtek.com/index.php/topic,178.0.html

Um den Fehler mit deinem Controller weiter zu untersuchen könntest du den Rechner für ein paar Tage nach Berlin schicken, dann könnten wir den Fehler ggf. mit den Linux Kernelentwicklern weiter tracken (remote ist hier leider zu aufwendig).

Dieses Problem betrifft im Allgemeinen alle USB 2.0 Geräte an diesem USB 3.0 Controller.
« Letzte Änderung: Juli 14, 2014, 06:10:04 Nachmittag von Sundtek »
Failure is a good thing! I'll fix it

dsteinwe

  • Newbie
  • *
  • Beiträge: 8
    • Profil anzeigen
Re:System-Freeze unter Ubuntu
« Antwort #2 am: Juli 15, 2014, 09:35:01 Vormittag »
Hier habe ich noch einige Links, wo dasselbe Problem beschrieben wird:
https://retrace.fedoraproject.org/faf/problems/320193/
http://support.sundtek.com/index.php/topic,1600.msg11854.html#msg11854

Ich habe gestern noch einmal nur den MediaTV Pro III-Stick benutzt. Heute morgen musste ich feststellen, dass der Rechner schon wieder hängt. Scheinbar ist der MediaTV Pro III-Stick dafür anfälliger als der MediaTV Pro II-Stick. Das Problem tritt allerdings mit beiden Sticks auf.

Meinen Rechner kann ich nicht einschicken, da ich ihn täglich brauche. Leider habe ich auch keine Möglichkeit, den Stick an einem anderen Gerät zu betreiben.

Die benannte Fehlerstelle
WARNING: CPU: 3 PID: 3951 at /build/buildd/linux-3.13.0/drivers/usb/host/xhci-ring.c:575 xhci_find_new_dequeue_state+0xc5/0x320()
finde ich ein bisschen merkwürdig, denn wenn ich in den Code reinschaue bei
http://lxr.free-electrons.com/source/drivers/usb/host/xhci-ring.c?v=3.13
steht in Zeile 575 nur ein WARN_ON(1); dass den Fehler verursachen soll. WARN_ON scheint ein Preprocessor Macro zu sein, was vermutlich keinen Einfluss auf die Funktionalität hat.

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8604
    • Profil anzeigen
Re:System-Freeze unter Ubuntu
« Antwort #3 am: Juli 15, 2014, 11:42:10 Vormittag »
Hallo,

nein das hat mit dem Tuner überhaupt nichts zu tun sondern mit dem USB 3.0 Stack des Linux Kernels.
Du kannst in dieser Funktion ja prinkt's hinzufügen und nachsehen wo es dann kracht und dann das Resultat abfangen.
ggf. ist der Fehler ja auch in einer dort aufgerufenen Funktion (sofern diese mit inline hineingeladen wird).

z.B printk(KERN_INFO"%s %s %d\n", __FILE__, __func__, __LINE__);


Das eigentliche Problem welches den Kernel teilweise abstürzen lässt, wirst du wohl erst im 2. Teil finden, mit der NULL exception!
« Letzte Änderung: Juli 15, 2014, 01:03:10 Nachmittag von Sundtek »
Failure is a good thing! I'll fix it

dsteinwe

  • Newbie
  • *
  • Beiträge: 8
    • Profil anzeigen
Re:System-Freeze unter Ubuntu
« Antwort #4 am: Juli 15, 2014, 09:28:43 Nachmittag »
Hallo,

vielen Dank für den Tipp mit der printk-Ausgabe. Ich beschäftige gerade, wie ich den Kernel kompiliere. Wenn das klappt, modifiziere ich die xhci-ring.c und nehme den modifizierten Kernel in Betrieb. Wenn ich neue Erkenntnisse habe, melde ich mich. Gibt es eigentlich auch noch einen einfacheren Weg?

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8604
    • Profil anzeigen
Re:System-Freeze unter Ubuntu
« Antwort #5 am: Juli 15, 2014, 11:02:15 Nachmittag »
Leider nicht wirklich, daher machen wir ja das Angebot betroffene Rechner zu uns einzuschicken.
Failure is a good thing! I'll fix it

dsteinwe

  • Newbie
  • *
  • Beiträge: 8
    • Profil anzeigen
Re:System-Freeze unter Ubuntu
« Antwort #6 am: Juli 16, 2014, 11:13:19 Nachmittag »
Moin,

ich habe den Kernel mit den Debug-Ausgaben versehen, erfolgreich kompilieren und starten können. Nach ewigen Zappen habe ich dann doch irgendwann einen Kernel-Oops auslösen können. Ich habe xhci-ring.c wie folgt modifiziert:
// Bis zu dieser Funktion ist alles unverändert
void xhci_find_new_dequeue_state(struct xhci_hcd *xhci,
                unsigned int slot_id, unsigned int ep_index,
                unsigned int stream_id, struct xhci_td *cur_td,
                struct xhci_dequeue_state *state)
{
        struct xhci_virt_device *dev = xhci->devs[slot_id];
        struct xhci_ring *ep_ring;
        struct xhci_generic_trb *trb;
        struct xhci_ep_ctx *ep_ctx;
        dma_addr_t addr;
        printk(KERN_INFO"%s %s %d\n", __FILE__, __func__, __LINE__);
        ep_ring = xhci_triad_to_transfer_ring(xhci, slot_id,
                        ep_index, stream_id);
        printk(KERN_INFO"%s %s %d\n", __FILE__, __func__, __LINE__);
        if (!ep_ring) {
                xhci_warn(xhci, "WARN can't find new dequeue state "
                                "for invalid stream ID %u.\n",
                                stream_id);
                return;
        }
        printk(KERN_INFO"%s %s %d\n", __FILE__, __func__, __LINE__);
        state->new_cycle_state = 0;
        printk(KERN_INFO"%s %s %d\n", __FILE__, __func__, __LINE__);
        xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb,
                        "Finding segment containing stopped TRB.");
        printk(KERN_INFO"%s %s %d\n", __FILE__, __func__, __LINE__);
        state->new_deq_seg = find_trb_seg(cur_td->start_seg,
                        dev->eps[ep_index].stopped_trb,
                        &state->new_cycle_state);
        printk(KERN_INFO"%s %s %d\n", __FILE__, __func__, __LINE__);
        if (!state->new_deq_seg) {
                printk(KERN_INFO"%s %s %d\n", __FILE__, __func__, __LINE__);
                WARN_ON(1);
                printk(KERN_INFO"%s %s %d\n", __FILE__, __func__, __LINE__);
                return;
        }
     // Der Rest ist unverändert geblieben
Syslog hat folgendes ausgegeben:
Jul 16 21:50:45 mc kernel: [ 2038.107685] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 559
Jul 16 21:50:45 mc kernel: [ 2038.107690] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 562
Jul 16 21:50:45 mc kernel: [ 2038.107692] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 569
Jul 16 21:50:45 mc kernel: [ 2038.107694] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 571
Jul 16 21:50:45 mc kernel: [ 2038.107696] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 574
Jul 16 21:50:45 mc kernel: [ 2038.107698] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 578
Jul 16 21:50:45 mc kernel: [ 2038.108440] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 559
Jul 16 21:50:45 mc kernel: [ 2038.108443] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 562
Jul 16 21:50:45 mc kernel: [ 2038.108445] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 569
Jul 16 21:50:45 mc kernel: [ 2038.108447] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 571
Jul 16 21:50:45 mc kernel: [ 2038.108448] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 574
Jul 16 21:50:45 mc kernel: [ 2038.108451] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 578
Jul 16 21:50:45 mc kernel: [ 2038.230230] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 559
Jul 16 21:50:45 mc kernel: [ 2038.230238] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 562
Jul 16 21:50:45 mc kernel: [ 2038.230242] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 569
Jul 16 21:50:45 mc kernel: [ 2038.230245] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 571
Jul 16 21:50:45 mc kernel: [ 2038.230248] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 574
Jul 16 21:50:45 mc kernel: [ 2038.230252] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 578
Jul 16 21:50:45 mc kernel: [ 2038.230256] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 580
Jul 16 21:50:45 mc kernel: [ 2038.230259] ------------[ cut here ]------------
Jul 16 21:50:45 mc kernel: [ 2038.230271] WARNING: CPU: 2 PID: 4015 at drivers/usb/host/xhci-ring.c:581 xhci_find_new_dequeue_state+0x3b9/0x3e0()
Jul 16 21:50:45 mc kernel: [ 2038.230274] Modules linked in: pci_stub(F) vboxpci(OF) vboxnetadp(OF) vboxnetflt(OF) vboxdrv(OF) bridge(F) stp(F) llc(F) joydev(F) snd_oxygen(F) snd_oxygen_lib(F) snd_mpu401_uart(F) snd_pcm(F) snd_page_alloc(F) snd_seq_midi(F) snd_seq_midi_event(F) snd_rawmidi(F) snd_seq(F) x86_pkg_temp_thermal(F) intel_powerclamp(F) snd_seq_device(F) coretemp(F) snd_timer(F) kvm_intel(F) kvm(F) crct10dif_pclmul(F) crc32_pclmul(F) ghash_clmulni_intel(F) aesni_intel(F) aes_x86_64(F) lrw(F) gf128mul(F) glue_helper(F) ablk_helper(F) cryptd(F) snd(F) serio_raw(F) i915(F) drm_kms_helper(F) soundcore(F) shpchp(F) bnep(F) rfcomm(F) bluetooth(F) fujitsu_laptop(F) parport_pc(F) drm(F) i2c_algo_bit(F) mei_me(F) mei(F) ppdev(F) lpc_ich(F) video(F) tpm_infineon(F) mac_hid(F) lp(F) parport(F) binfmt_misc(F) hid_sunplus(F) psmouse(F) ahci(F) libahci(F) e1000e(F) ptp(F) pps_core(F) usbhid(F) hid(F)
Jul 16 21:50:45 mc kernel: [ 2038.230385] CPU: 2 PID: 4015 Comm: mediasrv Tainted: GF          O 3.13.11.2 #1
Jul 16 21:50:45 mc kernel: [ 2038.230389] Hardware name: FUJITSU D3222-B1/D3222-B1, BIOS V4.6.5.4 R1.23.0 for D3222-B1x 05/16/2014
Jul 16 21:50:45 mc kernel: [ 2038.230393]  0000000000000009 ffff8803d2aebc40 ffffffff8171969b 0000000000000000
Jul 16 21:50:45 mc kernel: [ 2038.230403]  ffff8803d2aebc78 ffffffff8106757d ffff880403fc8000 0000000000000002
Jul 16 21:50:45 mc kernel: [ 2038.230411]  ffff88040595ed00 0000000000000002 ffff8803d2aebce8 ffff8803d2aebc88
Jul 16 21:50:45 mc kernel: [ 2038.230420] Call Trace:
Jul 16 21:50:45 mc kernel: [ 2038.230432]  [<ffffffff8171969b>] dump_stack+0x45/0x56
Jul 16 21:50:45 mc kernel: [ 2038.230440]  [<ffffffff8106757d>] warn_slowpath_common+0x7d/0xa0
Jul 16 21:50:45 mc kernel: [ 2038.230446]  [<ffffffff8106765a>] warn_slowpath_null+0x1a/0x20
Jul 16 21:50:45 mc kernel: [ 2038.230454]  [<ffffffff81576af9>] xhci_find_new_dequeue_state+0x3b9/0x3e0
Jul 16 21:50:45 mc kernel: [ 2038.230461]  [<ffffffff8156e4fc>] xhci_cleanup_stalled_ring+0x6c/0x200
Jul 16 21:50:45 mc kernel: [ 2038.230469]  [<ffffffff81575c3a>] ? queue_command+0x7a/0xd0
Jul 16 21:50:45 mc kernel: [ 2038.230476]  [<ffffffff8156e7be>] xhci_endpoint_reset+0x12e/0x1a0
Jul 16 21:50:45 mc kernel: [ 2038.230484]  [<ffffffff815419b5>] usb_hcd_reset_endpoint+0x25/0x70
Jul 16 21:50:45 mc kernel: [ 2038.230491]  [<ffffffff815449b5>] usb_enable_endpoint+0x85/0x90
Jul 16 21:50:45 mc kernel: [ 2038.230496]  [<ffffffff81544a02>] usb_enable_interface+0x42/0x60
Jul 16 21:50:45 mc kernel: [ 2038.230500]  [<ffffffff81544c2f>] usb_set_interface+0x20f/0x360
Jul 16 21:50:45 mc kernel: [ 2038.230506]  [<ffffffff8154ee2b>] usbdev_do_ioctl+0xa0b/0x1050
Jul 16 21:50:45 mc kernel: [ 2038.230510]  [<ffffffff8154f49e>] usbdev_ioctl+0xe/0x20
Jul 16 21:50:45 mc kernel: [ 2038.230517]  [<ffffffff811cfa00>] do_vfs_ioctl+0x2e0/0x4c0
Jul 16 21:50:45 mc kernel: [ 2038.230522]  [<ffffffff8109db54>] ? vtime_account_user+0x54/0x60
Jul 16 21:50:45 mc kernel: [ 2038.230528]  [<ffffffff811cfc61>] SyS_ioctl+0x81/0xa0
Jul 16 21:50:45 mc kernel: [ 2038.230533]  [<ffffffff8172a2bf>] tracesys+0xe1/0xe6
Jul 16 21:50:45 mc kernel: [ 2038.230536] ---[ end trace 55332440026aa7a2 ]---
Jul 16 21:50:45 mc kernel: [ 2038.230539] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 582
Jul 16 21:50:45 mc kernel: [ 2038.230551] BUG: unable to handle kernel NULL pointer dereference at 0000000000000010
Jul 16 21:50:45 mc kernel: [ 2038.230619] IP: [<ffffffff81576b9d>] xhci_queue_new_dequeue_state+0x7d/0x1e0
Jul 16 21:50:45 mc kernel: [ 2038.230676] PGD 3e0be9067 PUD 3de6d8067 PMD 0
Jul 16 21:50:45 mc kernel: [ 2038.230718] Oops: 0000 [#1] SMP
Jul 16 21:50:45 mc kernel: [ 2038.230748] Modules linked in: pci_stub(F) vboxpci(OF) vboxnetadp(OF) vboxnetflt(OF) vboxdrv(OF) bridge(F) stp(F) llc(F) joydev(F) snd_oxygen(F) snd_oxygen_lib(F) snd_mpu401_uart(F) snd_pcm(F) snd_page_alloc(F) snd_seq_midi(F) snd_seq_midi_event(F) snd_rawmidi(F) snd_seq(F) x86_pkg_temp_thermal(F) intel_powerclamp(F) snd_seq_device(F) coretemp(F) snd_timer(F) kvm_intel(F) kvm(F) crct10dif_pclmul(F) crc32_pclmul(F) ghash_clmulni_intel(F) aesni_intel(F) aes_x86_64(F) lrw(F) gf128mul(F) glue_helper(F) ablk_helper(F) cryptd(F) snd(F) serio_raw(F) i915(F) drm_kms_helper(F) soundcore(F) shpchp(F) bnep(F) rfcomm(F) bluetooth(F) fujitsu_laptop(F) parport_pc(F) drm(F) i2c_algo_bit(F) mei_me(F) mei(F) ppdev(F) lpc_ich(F) video(F) tpm_infineon(F) mac_hid(F) lp(F) parport(F) binfmt_misc(F) hid_sunplus(F) psmouse(F) ahci(F) libahci(F) e1000e(F) ptp(F) pps_core(F) usbhid(F) hid(F)
Jul 16 21:50:45 mc kernel: [ 2038.231452] CPU: 2 PID: 4015 Comm: mediasrv Tainted: GF       W  O 3.13.11.2 #1
Jul 16 21:50:45 mc kernel: [ 2038.231530] Hardware name: FUJITSU D3222-B1/D3222-B1, BIOS V4.6.5.4 R1.23.0 for D3222-B1x 05/16/2014
Jul 16 21:50:45 mc kernel: [ 2038.231596] task: ffff8803d28a8000 ti: ffff8803d2aea000 task.ti: ffff8803d2aea000
Jul 16 21:50:45 mc kernel: [ 2038.231649] RIP: 0010:[<ffffffff81576b9d>]  [<ffffffff81576b9d>] xhci_queue_new_dequeue_state+0x7d/0x1e0
Jul 16 21:50:45 mc kernel: [ 2038.231723] RSP: 0018:ffff8803d2aebc70  EFLAGS: 00010046
Jul 16 21:50:45 mc kernel: [ 2038.231762] RAX: 0000000000000000 RBX: 0000000000000001 RCX: 0000000000000000
Jul 16 21:50:45 mc kernel: [ 2038.231813] RDX: 0000000000000001 RSI: 0000000000000001 RDI: ffff880403fc8000
Jul 16 21:50:45 mc kernel: [ 2038.231863] RBP: ffff8803d2aebcd0 R08: ffff8803d2aebce8 R09: ffff880403fc8000
Jul 16 21:50:45 mc kernel: [ 2038.231913] R10: 0000000000000000 R11: ffff8803d2aeb9c6 R12: ffff8804038101f8
Jul 16 21:50:45 mc kernel: [ 2038.231964] R13: 0000000000000002 R14: ffff8803d2aebce8 R15: ffff880403fc8000
Jul 16 21:50:45 mc kernel: [ 2038.232015] FS:  00007f0315399700(0000) GS:ffff88041e300000(0000) knlGS:0000000000000000
Jul 16 21:50:45 mc kernel: [ 2038.232073] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Jul 16 21:50:45 mc kernel: [ 2038.232114] CR2: 0000000000000010 CR3: 00000003e0be8000 CR4: 00000000001407e0
Jul 16 21:50:45 mc kernel: [ 2038.232165] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Jul 16 21:50:45 mc kernel: [ 2038.232215] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Jul 16 21:50:45 mc kernel: [ 2038.232265] Stack:
Jul 16 21:50:45 mc kernel: [ 2038.232282]  ffff8803d2aebc78 0000000000000018 ffff8803d2aebce0 ffff8803d2aebc90
Jul 16 21:50:45 mc kernel: [ 2038.232344]  ffffffff81576b1a ffff880300000000 ffff880400000002 ffff880403fc8000
Jul 16 21:50:45 mc kernel: [ 2038.232406]  0000000000000002 ffff8804038101f8 ffff8804079a1000 ffff8804038101f8
Jul 16 21:50:45 mc kernel: [ 2038.232468] Call Trace:
Jul 16 21:50:45 mc kernel: [ 2038.232491]  [<ffffffff81576b1a>] ? xhci_find_new_dequeue_state+0x3da/0x3e0
Jul 16 21:50:45 mc kernel: [ 2038.232543]  [<ffffffff8156e652>] xhci_cleanup_stalled_ring+0x1c2/0x200
Jul 16 21:50:45 mc kernel: [ 2038.232596]  [<ffffffff81575c3a>] ? queue_command+0x7a/0xd0
Jul 16 21:50:45 mc kernel: [ 2038.232639]  [<ffffffff8156e7be>] xhci_endpoint_reset+0x12e/0x1a0
Jul 16 21:50:45 mc kernel: [ 2038.232685]  [<ffffffff815419b5>] usb_hcd_reset_endpoint+0x25/0x70
Jul 16 21:50:45 mc kernel: [ 2038.232731]  [<ffffffff815449b5>] usb_enable_endpoint+0x85/0x90
Jul 16 21:50:45 mc kernel: [ 2038.232776]  [<ffffffff81544a02>] usb_enable_interface+0x42/0x60
Jul 16 21:50:45 mc kernel: [ 2038.232822]  [<ffffffff81544c2f>] usb_set_interface+0x20f/0x360
Jul 16 21:50:45 mc kernel: [ 2038.232866]  [<ffffffff8154ee2b>] usbdev_do_ioctl+0xa0b/0x1050
Jul 16 21:50:45 mc kernel: [ 2038.232911]  [<ffffffff8154f49e>] usbdev_ioctl+0xe/0x20
Jul 16 21:50:45 mc kernel: [ 2038.232951]  [<ffffffff811cfa00>] do_vfs_ioctl+0x2e0/0x4c0
Jul 16 21:50:45 mc kernel: [ 2038.232993]  [<ffffffff8109db54>] ? vtime_account_user+0x54/0x60
Jul 16 21:50:45 mc kernel: [ 2038.233039]  [<ffffffff811cfc61>] SyS_ioctl+0x81/0xa0
Jul 16 21:50:45 mc kernel: [ 2038.233078]  [<ffffffff8172a2bf>] tracesys+0xe1/0xe6
Jul 16 21:50:45 mc kernel: [ 2038.233113] Code: 00 48 85 c9 0f 84 74 01 00 00 4c 89 ce 48 89 cf 89 55 b4 4c 89 4d b8 48 89 4d c0 e8 4e f6 ff ff 48 8b 4d c0 4c 8b 4d b8 8b 55 b4 <4c> 8b 41 10 48 c7 c6 20 5f 57 81 89 54 24 08 48 89 04 24 48 c7
Jul 16 21:50:45 mc kernel: [ 2038.233396] RIP  [<ffffffff81576b9d>] xhci_queue_new_dequeue_state+0x7d/0x1e0
Jul 16 21:50:45 mc kernel: [ 2038.233452]  RSP <ffff8803d2aebc70>
Jul 16 21:50:45 mc kernel: [ 2038.235481] CR2: 0000000000000010
Jul 16 21:50:45 mc kernel: [ 2038.248541] ---[ end trace 55332440026aa7a3 ]---
Zur Analyse der Ausgabe habe folgende Doku genommen: http://www.opensourceforu.com/2011/01/understanding-a-kernel-oops/.
Wie schon von Seiten Sundtek korrekt erklärt, handelt es sich um einen Kernel-Bug, was spätestens aus der ZeileJul 16 21:50:45 mc kernel: [ 2038.230718] Oops: 0000 [#1] SMP hervorgeht. Umso mehr spricht es für den Support von Sundtek, dass sie trotzdem mithelfen, dieses Problem zu lösen. Klasse!

Soweit ich den Trace verstanden habe, wird die Ausgabe von "Jul 16 21:50:45 mc kernel: [ 2038.230259]" bis "Jul 16 21:50:45 mc kernel: [ 2038.230536]" durch die Zeile WARN_ON(1); in der Funktion xhci_find_new_dequeue_state verursacht. Dieses ist aber wohl nicht ursächlich für den Kernel-Oops, da sonst nicht die Ausgabe
Jul 16 21:50:45 mc kernel: [ 2038.230539] drivers/usb/host/xhci-ring.c xhci_find_new_dequeue_state 582 möglich wäre. Der Kernel-Oops beginnt ab "Jul 16 21:50:45 mc kernel: [ 2038.230551]". Die Zeile Jul 16 21:50:45 mc kernel: [ 2038.230619] IP: [<ffffffff81576b9d>] xhci_queue_new_dequeue_state+0x7d/0x1e0gibt Aufschluss, wo der Instruction Pointer auf den Null Pointer Fehler gestoßen ist. Demnach ist also ein Fehler in der Funktion "xhci_queue_new_dequeue_state". Ich habe mir mit
(gdb) disassemble xhci_queue_new_dequeue_state
den Offset geholt:
Dump of assembler code for function xhci_queue_new_dequeue_state:
   0x00000000000016a0 <+0>: callq  0x16a5 <xhci_queue_new_dequeue_state+5>
Nun noch ein bisschen gerechnet: 0x7d+0x16a0=0x171d und durch
(gdb) list *0x171dmir den fehlerhaften Code ausgeben lassen:
0x171d is in xhci_queue_new_dequeue_state (drivers/usb/host/xhci-ring.c:702).
697 unsigned int stream_id,
698 struct xhci_dequeue_state *deq_state)
699 {
700 struct xhci_virt_ep *ep = &xhci->devs[slot_id]->eps[ep_index];
701
702 xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb,
703 "Set TR Deq Ptr cmd, new deq seg = %p (0x%llx dma), "
704 "new deq ptr = %p (0x%llx dma), new cycle = %u",
705 deq_state->new_deq_seg,
706 (unsigned long long)deq_state->new_deq_seg->dma,
Demnach ist also Zeile 702 defekt. Da ich allerdings nicht C programmiere, bräuchte ich ein bisschen Nachhilfe, wie ich prüfe, welcher Parameter von xhci_dbg_trace null ist.

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8604
    • Profil anzeigen
Re:System-Freeze unter Ubuntu
« Antwort #7 am: Juli 16, 2014, 11:28:12 Nachmittag »
Ich tippe eher auf die Zeile 700, das dev NULL ist?

if (ep == NULL) {
    printk(KERN_INFO"Warning dev not valid\n");
    printk(KERN_INFO"Crashing now...\n");
}

« Letzte Änderung: Juli 17, 2014, 12:35:01 Vormittag von Sundtek »
Failure is a good thing! I'll fix it

dsteinwe

  • Newbie
  • *
  • Beiträge: 8
    • Profil anzeigen
Re:System-Freeze unter Ubuntu
« Antwort #8 am: Juli 17, 2014, 09:18:04 Nachmittag »
Moin,

ich habe neue Erkenntnisse. Folgende Modifikation habe ich getestet:
void xhci_queue_new_dequeue_state(struct xhci_hcd *xhci,
                unsigned int slot_id, unsigned int ep_index,
                unsigned int stream_id,
                struct xhci_dequeue_state *deq_state)
{
        struct xhci_virt_ep *ep = &xhci->devs[slot_id]->eps[ep_index];

        printk(KERN_INFO"FINDME slot_id = %d, ep_index = %u ", slot_id, ep_index);

        if (ep == NULL) {
                printk(KERN_INFO"FINDME Warning dev not valid\n");
                printk(KERN_INFO"FINDME Crashing now...\n");
        }
        if (deq_state == NULL) {
                printk(KERN_INFO"FINDME deq_state == NULL\n");
                printk(KERN_INFO"FINDME Crashing now...\n");
        }
        if (xhci == NULL) {
                printk(KERN_INFO"FINDME xhci == NULL\n");
                printk(KERN_INFO"FINDME Crashing now...\n");
        }


        /*xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb,
                        "Set TR Deq Ptr cmd, new deq seg = %p (0x%llx dma), "
                        "new deq ptr = %p (0x%llx dma), new cycle = %u",
                        deq_state->new_deq_seg,
                        (unsigned long long)deq_state->new_deq_seg->dma,
                        deq_state->new_deq_ptr,
                        (unsigned long long)xhci_trb_virt_to_dma(deq_state->new_deq_seg, deq_state->new_deq_ptr),
                        deq_state->new_cycle_state);*/
        queue_set_tr_deq(xhci, slot_id, ep_index, stream_id,
                        deq_state->new_deq_seg,
                        deq_state->new_deq_ptr,
                        (u32) deq_state->new_cycle_state);
        /* Stop the TD queueing code from ringing the doorbell until
         * this command completes.  The HC won't set the dequeue pointer
         * if the ring is running, and ringing the doorbell starts the
         * ring running.
         */
        ep->ep_state |= SET_DEQ_PENDING;
}
Diese Funktion hat folgende Ausgabe ergeben:
Jul 17 20:01:43 mc mythfrontend.real: message repeated 2 times: [ mythfrontend[5824]: W CoreContext mythplayer.cpp:3128 (PauseDecoder) Player(0): Waited 100ms for decoder to pause]
Jul 17 20:01:44 mc mythfrontend.real: message repeated 2 times: [ mythfrontend[5824]: W CoreContext mythplayer.cpp:3128 (PauseDecoder) Player(0): Waited 100ms for decoder to pause]
Jul 17 20:01:52 mc kernel: [13479.830494] FINDME slot_id = 1, ep_index = 2 <4>[13498.025432] ------------[ cut here ]------------
Jul 17 20:01:52 mc kernel: [13498.025454] WARNING: CPU: 0 PID: 3959 at drivers/usb/host/xhci-ring.c:574 xhci_find_new_dequeue_state+0xc5/0x320()
Jul 17 20:01:52 mc kernel: [13492.083717] FINDME slot_id = 1, ep_index = 2
Jul 17 20:01:52 mc kernel: [13498.025458] Modules linked in: pci_stub(F) vboxpci(OF) vboxnetadp(OF) vboxnetflt(OF) vboxdrv(OF) bridge(F) stp(F) llc(F) joydev(F) snd_oxygen(F) snd_oxygen_lib(F) snd_mpu401_uart(F) snd_pcm(F) snd_page_alloc(F) snd_seq_midi(F) snd_seq_midi_event(F) snd_rawmidi(F) x86_pkg_temp_thermal(F) intel_powerclamp(F) coretemp(F) bnep(F) kvm_intel(F) rfcomm(F) kvm(F) crct10dif_pclmul(F) bluetooth(F) crc32_pclmul(F) ghash_clmulni_intel(F) aesni_intel(F) aes_x86_64(F) lrw(F) gf128mul(F) glue_helper(F) ablk_helper(F) cryptd(F) i915(F) snd_seq(F) drm_kms_helper(F) serio_raw(F) snd_seq_device(F) snd_timer(F) snd(F) soundcore(F) shpchp(F) lpc_ich(F) parport_pc(F) fujitsu_laptop(F) ppdev(F) drm(F) mei_me(F) mei(F) i2c_algo_bit(F) tpm_infineon(F) video(F) mac_hid(F) lp(F) parport(F) binfmt_misc(F) hid_sunplus(F) psmouse(F) ahci(F) libahci(F) e1000e(F) ptp(F) usbhid(F) hid(F) pps_core(F)
Jul 17 20:01:52 mc kernel: [13498.025561] CPU: 0 PID: 3959 Comm: mediasrv Tainted: GF          O 3.13.11.2.ds02. #1
Jul 17 20:01:52 mc kernel: [13498.025565] Hardware name: FUJITSU D3222-B1/D3222-B1, BIOS V4.6.5.4 R1.23.0 for D3222-B1x 05/16/2014
Jul 17 20:01:52 mc kernel: [13498.025569]  0000000000000009 ffff8803da3cbc40 ffffffff8171961b 0000000000000000
Jul 17 20:01:52 mc kernel: [13498.025578]  ffff8803da3cbc78 ffffffff8106757d ffff880403fa8000 ffff8803da3cbce8
Jul 17 20:01:52 mc kernel: [13498.025585]  ffff880403810000 ffff8803c29fcec0 0000000000000002 ffff8803da3cbc88
Jul 17 20:01:52 mc kernel: [13498.025592] Call Trace:
Jul 17 20:01:52 mc kernel: [13498.025603]  [<ffffffff8171961b>] dump_stack+0x45/0x56
Jul 17 20:01:52 mc kernel: [13498.025611]  [<ffffffff8106757d>] warn_slowpath_common+0x7d/0xa0
Jul 17 20:01:52 mc kernel: [13498.025617]  [<ffffffff8106765a>] warn_slowpath_null+0x1a/0x20
Jul 17 20:01:52 mc kernel: [13498.025625]  [<ffffffff81576805>] xhci_find_new_dequeue_state+0xc5/0x320
Jul 17 20:01:52 mc kernel: [13498.025632]  [<ffffffff8156e4fc>] xhci_cleanup_stalled_ring+0x6c/0x200
Jul 17 20:01:52 mc kernel: [13498.025639]  [<ffffffff81575c3a>] ? queue_command+0x7a/0xd0
Jul 17 20:01:52 mc kernel: [13498.025646]  [<ffffffff8156e7be>] xhci_endpoint_reset+0x12e/0x1a0
Jul 17 20:01:52 mc kernel: [13498.025655]  [<ffffffff815419b5>] usb_hcd_reset_endpoint+0x25/0x70
Jul 17 20:01:52 mc kernel: [13498.025662]  [<ffffffff815449b5>] usb_enable_endpoint+0x85/0x90
Jul 17 20:01:52 mc kernel: [13498.025669]  [<ffffffff81544a02>] usb_enable_interface+0x42/0x60
Jul 17 20:01:52 mc kernel: [13498.025675]  [<ffffffff81544c2f>] usb_set_interface+0x20f/0x360
Jul 17 20:01:52 mc kernel: [13498.025683]  [<ffffffff8154ee2b>] usbdev_do_ioctl+0xa0b/0x1050
Jul 17 20:01:52 mc kernel: [13498.025689]  [<ffffffff8154f49e>] usbdev_ioctl+0xe/0x20
Jul 17 20:01:52 mc kernel: [13498.025698]  [<ffffffff811cfa00>] do_vfs_ioctl+0x2e0/0x4c0
Jul 17 20:01:52 mc kernel: [13498.025705]  [<ffffffff8109db54>] ? vtime_account_user+0x54/0x60
Jul 17 20:01:52 mc kernel: [13498.025712]  [<ffffffff811cfc61>] SyS_ioctl+0x81/0xa0
Jul 17 20:01:52 mc kernel: [13498.025719]  [<ffffffff8172a23f>] tracesys+0xe1/0xe6
Jul 17 20:01:52 mc kernel: [13498.025723] ---[ end trace 86a964eabbfacb24 ]---
Jul 17 20:01:52 mc kernel: [13498.025727] FINDME slot_id = 1, ep_index = 2
Jul 17 20:01:52 mc kernel: [13498.025733] xhci_hcd 0000:00:14.0: WARN Cannot submit Set TR Deq Ptr
Jul 17 20:01:52 mc kernel: [13498.025738] xhci_hcd 0000:00:14.0: WARN deq seg =           (null), deq pt = ffff880403fa8000
Jul 17 20:03:24 mc kernel: [13590.088556] xhci_hcd 0000:00:14.0: WARN Cannot submit Set TR Deq Ptr
Jul 17 20:03:24 mc kernel: [13590.088559] xhci_hcd 0000:00:14.0: A Set TR Deq Ptr command is pending.
Jul 17 20:03:29 mc kernel: [13595.411463] FINDME slot_id = 1, ep_index = 2
Jul 17 20:03:29 mc kernel: [13595.411472] xhci_hcd 0000:00:14.0: WARN Cannot submit Set TR Deq Ptr
Jul 17 20:03:29 mc kernel: [13595.411480] xhci_hcd 0000:00:14.0: A Set TR Deq Ptr command is pending.
Jul 17 20:03:34 mc kernel: [13600.759736] FINDME slot_id = 1, ep_index = 2
Jul 17 20:03:34 mc kernel: [13600.759741] xhci_hcd 0000:00:14.0: WARN Cannot submit Set TR Deq Ptr
Jul 17 20:03:34 mc kernel: [13600.759743] xhci_hcd 0000:00:14.0: A Set TR Deq Ptr command is pending.
Jul 17 20:03:39 mc kernel: [13605.588241] FINDME slot_id = 1, ep_index = 2
Jul 17 20:03:39 mc kernel: [13605.588251] xhci_hcd 0000:00:14.0: WARN Cannot submit Set TR Deq Ptr
Jul 17 20:03:39 mc kernel: [13605.588258] xhci_hcd 0000:00:14.0: A Set TR Deq Ptr command is pending.
Jul 17 20:03:44 mc kernel: [13610.374291] FINDME slot_id = 1, ep_index = 2
Jul 17 20:03:44 mc kernel: [13610.374294] xhci_hcd 0000:00:14.0: WARN Cannot submit Set TR Deq Ptr
Jul 17 20:03:44 mc kernel: [13610.374297] xhci_hcd 0000:00:14.0: A Set TR Deq Ptr command is pending.
Jul 17 20:03:49 mc kernel: [13615.563838] FINDME slot_id = 1, ep_index = 2
Wie zu sehen ist, kommt nur noch die Ausgabe vom Aufruf "WARN_ON(1);". Die Null-Tests waren alle negativ. Die Auskommentierung der Funktion "xhci_dbg_trace" hat allerdings den Kernel-Oops verhindert. Leider gibt es danach immer noch Probleme: Der Tuner ist nicht mehr benutzbar. Der Senderwechsel verursacht die Ausgabe:
Jul 17 20:03:44 mc kernel: [13610.374294] xhci_hcd 0000:00:14.0: WARN Cannot submit Set TR Deq Ptr
Jul 17 20:03:44 mc kernel: [13610.374297] xhci_hcd 0000:00:14.0: A Set TR Deq Ptr command is pending.
Jul 17 20:03:49 mc kernel: [13615.563838] FINDME slot_id = 1, ep_index = 2

Das Ziehen und Stecken des USB-Sticks am USB-Port bringt keine Besserung. Ebenfalls bringt das Neustarten von MythTV keine Besserung.

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8604
    • Profil anzeigen
Re:System-Freeze unter Ubuntu
« Antwort #9 am: Juli 17, 2014, 10:38:03 Nachmittag »
Kannst du die Erkenntnisse dort hinzufügen:
https://bugzilla.kernel.org/show_bug.cgi?id=75521

Oder soll ich das machen?
Failure is a good thing! I'll fix it

dsteinwe

  • Newbie
  • *
  • Beiträge: 8
    • Profil anzeigen
Re:System-Freeze unter Ubuntu
« Antwort #10 am: Juli 18, 2014, 08:39:34 Vormittag »
Moin,

möglicherweise habe ich die Funktion gefunden, durch die der NULL-Pointer Fehler entsteht. Ich möchte das noch vorher testen.

dsteinwe

  • Newbie
  • *
  • Beiträge: 8
    • Profil anzeigen
Re:System-Freeze unter Ubuntu
« Antwort #11 am: Juli 18, 2014, 12:19:38 Nachmittag »
Der Null-Pointer wird durch die Funktion
456 /*
457  * Find the segment that trb is in.  Start searching in start_seg.
458  * If we must move past a segment that has a link TRB with a toggle cycle state
459  * bit set, then we will toggle the value pointed at by cycle_state.
460  */
461 static struct xhci_segment *find_trb_seg(
462                 struct xhci_segment *start_seg,
463                 union xhci_trb  *trb, int *cycle_state)
464 {
465         struct xhci_segment *cur_seg = start_seg;
466         struct xhci_generic_trb *generic_trb;
467
468         while (cur_seg->trbs > trb ||
469                         &cur_seg->trbs[TRBS_PER_SEGMENT - 1] < trb) {
470                 generic_trb = &cur_seg->trbs[TRBS_PER_SEGMENT - 1].generic;
471                 if (generic_trb->field[3] & cpu_to_le32(LINK_TOGGLE))
472                         *cycle_state ^= 0x1;
473                 cur_seg = cur_seg->next;
474                 if (cur_seg == start_seg)
475                         /* Looped over the entire list.  Oops! */
476                         return NULL;
477         }
478         return cur_seg;
479 }
in der Zeile 476 verursacht. Dadurch wird dann der if-Zweig - wie schon im vorigen Post beschrieben - mit WARN_ON(1) in der Funktion xhci_find_new_dequeue_state und löst dann den Kernel-Oops in der Funktion xhci_queue_new_dequeue_state beim Aufruf von xhci_dbg_trace auf. Leider verstehe ich den obigen Code nicht mehr, deshalb kann ich den Code nicht weiter analysieren. Vielleicht hilft aber irgend jemandem diese Erkenntnisse. Wenn Du magst, kannst Du gerne die Fehlerbeschreibung bei kernel.org ergänzen. Ich werde jetzt bei mir im BIOS erst einmal xhci disablen, damit mein Rechner stabil läuft.