ich hoffe, dass der Beitrag jetzt im richtigen Forum steht...
Kurze Systembeschreibung:
Kernel: 3.2.15-rt26
CPU: i5-2400 mit 3,1 GHz (Quadcore)
Hintergrund:
Ich habe ein Programm geschrieben (hohe Echtzeitpriorität), dass relativ lange laufen kann und die CPU auch während der Laufzeit nicht freigibt. Ist soweit ich informiert bin bei einem Mehrkernsystem kein Problem, zumal ich das Programm an eine CPU (1) binde und auf dieser CPU von mir aus nichts anderes laufen muss.
Problembeschreibung:
Wenn das Programm "kurz" läuft funktioniert alles bestens. Lasse ich es länger laufen, so erhalte ich folgende Information:
Code: Alles auswählen
[ 737.688699] INFO: rcu_preempt detected stall on CPU 1 (t=60000 jiffies)
Fehlersuche:
Um dem Problem auf die Schliche zu kommen habe ich in /var/log/ die entsprechenden Zeilen der Logdatei rauskopiert:
Code: Alles auswählen
May 10 10:54:05 Optiplex990-149 kernel: [ 737.688701] Pid: 1684, comm: meinprogramm Not tainted 3.2.15-rev02-rt26 #3
May 10 10:54:05 Optiplex990-149 kernel: [ 737.688703] Call Trace:
May 10 10:54:05 Optiplex990-149 kernel: [ 737.688707] [<c107be33>] ? __rcu_pending+0x66/0x364
May 10 10:54:05 Optiplex990-149 kernel: [ 737.688709] [<c107c42c>] ? rcu_check_callbacks+0x10c/0x128
May 10 10:54:05 Optiplex990-149 kernel: [ 737.688712] [<c103d690>] ? update_process_times+0x2f/0x39
May 10 10:54:05 Optiplex990-149 kernel: [ 737.688714] [<c105710a>] ? tick_sched_timer+0x5b/0x88
May 10 10:54:05 Optiplex990-149 kernel: [ 737.688716] [<c10570af>] ? tick_nohz_handler+0xd2/0xd2
May 10 10:54:05 Optiplex990-149 kernel: [ 737.688717] [<c104d7f4>] ? __run_hrtimer+0xad/0x12f
May 10 10:54:05 Optiplex990-149 kernel: [ 737.688719] [<c104daf6>] ? hrtimer_interrupt+0x116/0x21b
May 10 10:54:05 Optiplex990-149 kernel: [ 737.688722] [<c101652f>] ? smp_apic_timer_interrupt+0x63/0x72
May 10 10:54:05 Optiplex990-149 kernel: [ 737.688724] [<c12b8251>] ? apic_timer_interrupt+0x31/0x38
May 10 10:54:05 Optiplex990-149 kernel: [ 737.688727] [<c12b007b>] ? early_init_intel+0x175/0x1bd
May 10 10:54:05 Optiplex990-149 kernel: [ 737.688728] [<c12b0000>] ? early_init_intel+0xfa/0x1bd
Mich würde interessieren, wie auf der CPU 1 etwas schief gehen kann, wenn nur ein Programm darauf zugreift und alle andern Aufgaben von den anderen drei Kernen übernommen werden könnten? Oder ob doch noch andere, nicht von mir gestartete, Programme auf alle CPUs zugreifen wollen und somit der Fehler auftritt. Welche sind das und wie kann ich dies unterbinden?
Vielen Dank für eure Hinweise.
Gruß Sören