Kernel panic beim booten. Invalid OPCODE

Fallaxia

Lieutenant
Registriert
Okt. 2012
Beiträge
684
Hi Leute,

vielleicht kann mir jemand hiermit helfen.

Es ist ein VIA Epia-M920 Mainboard mit Via Nano Quadcore CPU. Also ein x64 System welches bis Linux Kernel Version 5.8 einwandfrei bootet, aber ab Kernel Version 5.9 nur noch Kernel Panic beim booten zeigt.

Ich habe die Ausgabe über eine serielle Konsole umgeleitet um sie kopieren zu können.

Hat jemand eine Idee was ich tun kann um einen aktuellen Kernel nutzen zu können?


Code:
[    0.000000] Linux version 5.9.0-p4 (root@ntp2) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #4 SMP Tue Jan 23 15:11:31 UTC 2024
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.9.0-p4 root=UUID=c693ecac-5122-4d6a-9523-d0d3a99ef226 ro recovery nomodeset dis_ucode_ldr vt.handoff=7 console=ttyS0,115200n8
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Hygon HygonGenuine
[    0.000000]   Centaur CentaurHauls
[    0.000000]   zhaoxin   Shanghai
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009e7ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009e800-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000ce463fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000ce464000-0x00000000ce613fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ce614000-0x00000000ce645fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000ce646000-0x00000000ce6a1fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000ce6a2000-0x00000000cf4e6fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000cf4e7000-0x00000000cf4e7fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000cf4e8000-0x00000000cf4eefff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000cf4ef000-0x00000000cf644fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000cf645000-0x00000000cfb12fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000cfb13000-0x00000000cfb40fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000cfb41000-0x00000000cfef1fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000cfef2000-0x00000000cfefffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000fe012000-0x00000000fe012fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec3ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fecc0000-0x00000000fed7ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000feefffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ff800000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000021fffffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.7 present.
[    0.000000] DMI: To be filled by O.E.M. To be filled by O.E.M./EPIA-M920, BIOS 4.6.5 02/05/2016
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 2000.066 MHz processor
[    0.001833] last_pfn = 0x220000 max_arch_pfn = 0x400000000
[    0.002157] x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WP  UC- WT
[    0.002487] total RAM covered: 7935M
[    0.003381] Found optimal setting for mtrr clean up
[    0.003384]  gran_size: 64K  chunk_size: 2M  num_reg: 6      lose cover RAM: 0G
[    0.003544] last_pfn = 0xcff00 max_arch_pfn = 0x400000000
[    0.013455] found SMP MP-table at [mem 0x000fd780-0x000fd78f]
[    0.033411] check: Scanning 1 areas for low memory corruption
[    0.033419] Using GB pages for direct mapping
[    0.034548] RAMDISK: [mem 0x2c89b000-0x32444fff]
[    0.034564] ACPI: Early table checksum verification disabled
[    0.034572] ACPI: RSDP 0x00000000000F0490 000024 (v02 ALASKA)
[    0.034578] ACPI: XSDT 0x00000000CE691068 00004C (v01 ALASKA A M I    01072009 AMI  00010013)
[    0.034590] ACPI: FACP 0x00000000CE697108 00010C (v05 ALASKA A M I    01072009 AMI  00010013)
[    0.034601] ACPI: DSDT 0x00000000CE691148 005FBE (v02 ALASKA A M I    00000000 INTL 20051117)
[    0.034608] ACPI: FACS 0x00000000CE698080 000040
[    0.034614] ACPI: FPDT 0x00000000CE697218 000044 (v01 ALASKA A M I    01072009 AMI  00010013)
[    0.034620] ACPI: MCFG 0x00000000CE697260 00003C (v01 A M I  OEMMCFG  01072009 MSFT 00000097)
[    0.034627] ACPI: HPET 0x00000000CE6972A0 000038 (v01 A M I  VIA HPET 01072009 AMI. 00000005)
[    0.034633] ACPI: APIC 0x00000000CE6972D8 000092 (v03 ALASKA A M I    01072009 AMI  00010013)
[    0.034915] No NUMA configuration found
[    0.034918] Faking a node at [mem 0x0000000000000000-0x000000021fffffff]
[    0.034941] NODE_DATA(0) allocated [mem 0x21ffd3000-0x21fffdfff]
[    0.035875] Zone ranges:
[    0.035877]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.035880]   DMA32    [mem 0x0000000001000000-0x00000000ffffffff]
[    0.035883]   Normal   [mem 0x0000000100000000-0x000000021fffffff]
[    0.035886]   Device   empty
[    0.035888] Movable zone start for each node
[    0.035893] Early memory node ranges
[    0.035896]   node   0: [mem 0x0000000000001000-0x000000000009dfff]
[    0.035899]   node   0: [mem 0x0000000000100000-0x00000000ce463fff]
[    0.035901]   node   0: [mem 0x00000000ce614000-0x00000000ce645fff]
[    0.035903]   node   0: [mem 0x00000000cf4e7000-0x00000000cf4e7fff]
[    0.035905]   node   0: [mem 0x00000000cf4ef000-0x00000000cf644fff]
[    0.035907]   node   0: [mem 0x00000000cfb13000-0x00000000cfb40fff]
[    0.035909]   node   0: [mem 0x00000000cfef2000-0x00000000cfefffff]
[    0.035911]   node   0: [mem 0x0000000100000000-0x000000021fffffff]
[    0.036095] Zeroed struct page in unavailable ranges: 6714 pages
[    0.036097] Initmem setup node 0 [mem 0x0000000000001000-0x000000021fffffff]
[    0.122383] Looks like a VIA chipset. Disabling IOMMU. Override with iommu=allowed
[    0.122554] ACPI: PM-Timer IO Port: 0x808
[    0.122574] ACPI: LAPIC_NMI (acpi_id[0xff] high edge lint[0x1])
[    0.122589] IOAPIC[0]: apic_id 9, version 3, address 0xfec00000, GSI 0-23
[    0.122597] IOAPIC[1]: apic_id 10, version 3, address 0xfecc0000, GSI 24-47
[    0.122602] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.122605] ACPI: INT_SRC_OVR (bus 0 bus_irq 3 global_irq 3 low level)
[    0.122607] ACPI: INT_SRC_OVR (bus 0 bus_irq 4 global_irq 4 low level)
[    0.122610] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
[    0.122620] Using ACPI (MADT) for SMP configuration information
[    0.122623] ACPI: HPET id: 0xffffffff base: 0xfed00000
[    0.122633] smpboot: Allowing 4 CPUs, 0 hotplug CPUs
[    0.122677] [mem 0xcff00000-0xfe011fff] available for PCI devices
[    0.122680] Booting paravirtualized kernel on bare hardware
[    0.122686] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.122697] setup_percpu: NR_CPUS:8192 nr_cpumask_bits:4 nr_cpu_ids:4 nr_node_ids:1
[    0.123825] percpu: Embedded 55 pages/cpu s188416 r8192 d28672 u524288
[    0.123906] Built 1 zonelists, mobility grouping on.  Total pages: 1993240
[    0.123908] Policy zone: Normal
[    0.123912] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.9.0-p4 root=UUID=c693ecac-5122-4d6a-9523-d0d3a99ef226 ro recovery nomodeset dis_ucode_ldr vt.handoff=7 console=ttyS0,115200n8
[    0.124033] You have booted with nomodeset. This means your GPU drivers are DISABLED
[    0.124035] Any video related functionality will be severely degraded, and you may not even be able to suspend the system properly
[    0.124037] Unless you actually understand what nomodeset does, you should reboot without enabling it
[    0.129116] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[    0.131755] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.131813] mem auto-init: stack:off, heap alloc:on, heap free:off
[    0.275509] Memory: 7766280K/8099608K available (14338K kernel code, 2619K rwdata, 5276K rodata, 2552K init, 4936K bss, 333068K reserved, 0K cma-reserved)
[    0.275527] random: get_random_u64 called from __kmem_cache_create+0x35/0x43e with crng_init=0
[    0.275828] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.275858] Kernel/User page tables isolation: enabled
[    0.275903] ftrace: allocating 45247 entries in 177 pages
[    0.305990] ftrace: allocated 177 pages with 4 groups
[    0.306293] rcu: Hierarchical RCU implementation.
[    0.306296] rcu:     RCU restricting CPUs from NR_CPUS=8192 to nr_cpu_ids=4.
[    0.306299]  Trampoline variant of Tasks RCU enabled.
[    0.306300]  Rude variant of Tasks RCU enabled.
[    0.306302]  Tracing variant of Tasks RCU enabled.
[    0.306304] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.306306] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.315146] NR_IRQS: 524544, nr_irqs: 864, preallocated irqs: 16
[    0.315694] random: crng done (trusting CPU's manufacturer)
[    0.317735] Console: colour VGA+ 80x25
[    1.104699] printk: console [ttyS0] enabled
[    1.108896] ACPI: Core revision 20200717
[    1.112940] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 133484882848 ns
[    1.122072] APIC: Switch to symmetric I/O mode setup
[    1.127146] x2apic: IRQ remapping doesn't support X2APIC mode
[    1.133832] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    1.182072] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x1cd46c99490, max_idle_ns: 440795245743 ns
[    1.192577] Calibrating delay loop (skipped), value calculated using timer frequency.. 4000.13 BogoMIPS (lpj=20000660)
[    1.202574] pid_max: default: 32768 minimum: 301
[    1.207241] LSM: Security Framework initializing
[    1.212593] Yama: becoming mindful.
[    1.216130] AppArmor: AppArmor initialized
[    1.220327] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    1.222623] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    1.233091] Last level iTLB entries: 4KB 0, 2MB 0, 4MB 0
[    1.238389] Last level dTLB entries: 4KB 0, 2MB 0, 4MB 0, 1GB 0
[    1.242580] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization
[    1.252575] Spectre V2 : Spectre mitigation: kernel not compiled with retpoline; no mitigation available!
[    1.252577] Speculative Store Bypass: Vulnerable
[    1.267179] MDS: Vulnerable: Clear CPU buffers attempted, no microcode
[    1.272802] Freeing SMP alternatives memory: 40K
[    1.285518] invalid opcode: 0000 [#1] SMP PTI
[    1.289869] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.9.0-p4 #4
[    1.292572] Hardware name: To be filled by O.E.M. To be filled by O.E.M./EPIA-M920, BIOS 4.6.5 02/05/2016
[    1.292572] RIP: 0010:current_save_fsgs+0x43/0x98
[    1.292572] Code: c4 fa 66 66 90 66 66 90 65 48 8b 1c 25 80 7c 01 00 66 8c e0 66 89 83 e4 13 00 00 66 8c e8 66 89 83 e6 13 00 00 66 66 90 66 90 <f3> 48 0f ae c0 48 89 83 e8 13 00 00 e8 63 5a a7 00 48 89 83 f0 13
[    1.292572] RSP: 0000:ffffffff97c03cf8 EFLAGS: 00010082
[    1.292572] RAX: 0000000000000000 RBX: ffffffff97c13880 RCX: ffff96fb17249880
[    1.292572] RDX: ffffae594001bf59 RSI: ffffffff970a8623 RDI: 0000000000800300
[    1.292572] RBP: ffffffff97c03d08 R08: 0000000000000000 R09: 0000000000000040
[    1.292572] R10: 20352617fb96ffff R11: fffff0ed085c9a00 R12: 0000000000000282
[    1.292572] R13: 0000000000800300 R14: 0000000000000000 R15: ffffffff970a8623
[    1.292572] FS:  0000000000000000(0000) GS:ffff96fb18000000(0000) knlGS:0000000000000000
[    1.292572] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    1.292572] CR2: ffff96fb1ffff000 CR3: 00000000a840a001 CR4: 00000000001706f0
[    1.292572] Call Trace:
[    1.292572]  copy_thread+0x91/0x21c
[    1.292572]  copy_process+0xe27/0x1a04
[    1.292572]  ? _do_fork+0x56/0x3da
[    1.292572]  _do_fork+0x56/0x3da
[    1.292572]  ? acpi_hw_register_read+0x129/0x135
[    1.292572]  kernel_thread+0x4c/0x4e
[    1.292572]  ? rest_init+0xb4/0xb4
[    1.292572]  rest_init+0x25/0xb4
[    1.292572]  arch_call_rest_init+0x12/0x23
[    1.292572]  start_kernel+0x541/0x54e
[    1.292572]  x86_64_start_reservations+0x28/0x2a
[    1.292572]  x86_64_start_kernel+0x79/0x7d
[    1.292572]  secondary_startup_64+0xa4/0xb0
[    1.292572] Modules linked in:
[    1.292572] ---[ end trace 31cff37ba8a0a700 ]---
[    1.292572] RIP: 0010:current_save_fsgs+0x43/0x98
[    1.292572] Code: c4 fa 66 66 90 66 66 90 65 48 8b 1c 25 80 7c 01 00 66 8c e0 66 89 83 e4 13 00 00 66 8c e8 66 89 83 e6 13 00 00 66 66 90 66 90 <f3> 48 0f ae c0 48 89 83 e8 13 00 00 e8 63 5a a7 00 48 89 83 f0 13
[    1.292572] RSP: 0000:ffffffff97c03cf8 EFLAGS: 00010082
[    1.292572] RAX: 0000000000000000 RBX: ffffffff97c13880 RCX: ffff96fb17249880
[    1.292572] RDX: ffffae594001bf59 RSI: ffffffff970a8623 RDI: 0000000000800300
[    1.292572] RBP: ffffffff97c03d08 R08: 0000000000000000 R09: 0000000000000040
[    1.292572] R10: 20352617fb96ffff R11: fffff0ed085c9a00 R12: 0000000000000282
[    1.292572] R13: 0000000000800300 R14: 0000000000000000 R15: ffffffff970a8623
[    1.292572] FS:  0000000000000000(0000) GS:ffff96fb18000000(0000) knlGS:0000000000000000
[    1.292572] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    1.292572] CR2: ffff96fb1ffff000 CR3: 00000000a840a001 CR4: 00000000001706f0
[    1.292572] Kernel panic - not syncing: Attempted to kill the idle task!
[    1.292572] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]---

Was ich bereits probiert habe:

# Deaktivieren von diversen Mitigations wie Spectre.
# Optimieren des Kernel auf "netburst" (alter Pentium 4) statt x86_84 generische Optimierung.
# Diverse RC Kernel wie 5.9-rc1 kompiliert um zu sehen ab wann das Problem auftritt. Es tritt ab 5.9-rc1 also dem ersten 5.9 Kernel auf.
 
Zuletzt bearbeitet: (Rechtschreibung)
bugreport bei deiner distri erstellen wäre schon mal ein anfang :) die hardware ist ja schon recht exotisch, kann mir nicht vorstellen, dass das hier viele (wenn überhaupt) haben.
 
5.9.0 ist ja schon ein bisschen älter. Hast du mal geprüft, ob irgendeine Unterstützung für die CPU oder Chipsatz entfernt wurde?
 
Es wurde mit 5.9 seitens Intel "FSGSBASE" dem x64 Instruction Set hinzugefügt, wenn ich das richtig verstanden habe.

Ich habe hier Ubuntu 20.04.06 LTS verwendet, welches mit dem Standard Kernel läuft, im Gegensatz zu neueren Versionen wie 23.10, welches aufgrund aktuelleren Kernels auf dem System nicht läuft.

Ich habe sehr viele VIA / Zhaoxin (der aktuelle Name) CPUs und Systeme im Einsatz, welche alle mit den neusten Kernelversionen laufen, nur das Teil hier zickt rum.

Ich möchte es ungerne mit einer so alten Kernelversion laufen lassen bzw. Ubuntu 20.04 LTS weiter produktiv einsetzen, da es bald auf dem Support läuft.

@kartoffelpü

Der Grund warum ich hier 5.9 genommen habe ist um den Beginn des Problems zu zeigen. Es tritt mit jedem neueren Kernel exakt genau so auf.
Egal von welcher Distro, Live CD oder selbst kompiliert, spielt keine Rolle.

Jemand eine Idee was genau hier für eine neue Funktion in Linux Kernel 5.9 hinzugefügt wurde die das hier auslöst?
 
Zuletzt bearbeitet: (Rechtschreibung)
Ich habe mal das Changelog nach "via" und "epia" durchsucht. via ergibt zu viele Hits, deshalb nicht durchgeschaut. epia hatte keinen Hit.
Mehr kann ich da glaube ich nicht mehr beitragen.
 
wenn fsgsbase dafür verantwortlich ist (und darauf deutet "RIP: 0010:current_save_fsgs" hin), dann könnte man mal versuchen, dieses feature zu deaktivieren. siehe z.b. hier. also als kernel-parameter "clearcpuid=288" verwenden.
 
Das beste ist ne Bugmeldung zu schreiben, das kommt halt immer mal wieder vor, das sich Bugs einschleichen und wenn sich keiner beschwert, dann ist es eben ein unbemerkter mitgeschleppter.
 
Fallaxia schrieb:
Ich möchte es ungerne mit einer so alten Kernelversion laufen lassen bzw. Ubuntu 20.04 LTS weiter produktiv einsetzen, da es bald auf dem Support läuft.
Also deine eigentliche Frage kann ich dir nicht beantworten, du kannst jedoch auf bis zu 5 Machinen ESM über Ubuntu Pro kostenlos aktivieren. Dann erhältst du 10 Jahre Updates.
 
ESM ist kein Allheilmittel, da z.B. Firefox und Thunderbird keine Updates erhalten.
Das sollte man nur machen, wenn man genau weiß, was man tut!

@Fallaxia
Wieso möchtest Du auf der Maschine einen neueren Kernel nutzen?
Kernel 5.4 hat doch noch zwei Jahre Support.
 
Fallaxia schrieb:
# Deaktivieren von diversen Mitigations wie Spectre.
War nopti involviert? Das scheint letztlich das, was die CPU nicht kennt, bzw. aus dem Tritt bringt (illegal opcode).

Fallaxia schrieb:
# Optimieren des Kernel auf "netbust" (alter Pentium 4) statt x86_84 generische Optimierung.
Optimieren (mtune) wird da nicht viel bringen. Wenn, musst Du den Befehlssatz hart limitieren (march). Ich würde die nano Profile testen. Abgesehen davon wären deine benutzten Compiler Optionen hilfreich. Nicht dass mit x86-64-v2 oder ähnlich exotischen Flags compiliert wurde.

Fallaxia schrieb:
Jemand eine Idee was genau hier für eine neue Funktion in Linux Kernel 5.9 hinzugefügt wurde die das hier auslöst?
Bisect erstellen und Bug finden.
 
Zuletzt bearbeitet:
Nach der Beschreibung muss es ein Bug sein in dem Bezug, das eine Technik eingesetzt wird mit der CPU, die diese garnicht unterstützt. Oder einzig sinnvolle andere variante ist, die CPU wird einfach nicht mehr unterstützt... denn wenn doch müsste deren Architektur berücksichtigt werden - also was sie kann.
 
@0x8100

Du hast Recht: mit der Kernel Option clearcpuid=288 bootet das System einwandfrei.

Ich habe jetzt einen 6.7 Kernel kompiliert, nachdem der 5.9 mit der "clearcpuid=288" Option gebootet hat.
Der 6.7 Kernel bootet ebenfalls mit "clearcpuid=288" einwandfrei, was es mir ermöglicht Ubuntu 23.10 zu installieren und entweder mit dem mitgelieferten Kernel zu nutzen oder einem aktuellen von kernel.org.

Ich danke @0x8100 für den richtigen Hinweis und die Benennung der Boot Option, sowie Allen die im Thread mitgeholfen haben das Problem einzugrenzen und zu lösen.

Ich werde es als Bugreport zum aktuellen Kernel (mit Angabe der ersten Version in der es auftritt) einreichen, so dass beim Booten des Kernels auf den CPU Typ, hier VIA / Centauer Hauls, vor dem Aufruf dieser Instruktion getestet werden kann um Kernel Panic zu vermeiden.

 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: netzgestaltung, 0x8100 und Alexander2
Ja, mache ich, bin gerade dabei.
 
Zurück
Oben