Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SOS GP fault in BIOS efi call handler #8750

Open
zhangqiang4 opened this issue Dec 10, 2024 · 1 comment
Open

SOS GP fault in BIOS efi call handler #8750

zhangqiang4 opened this issue Dec 10, 2024 · 1 comment
Labels
status: new The issue status: new for creation

Comments

@zhangqiang4
Copy link
Contributor

Describe the bug
When enabling ACRN on ASUS PN64 NUC Mini PC, SOS kernel panicked on GP fault triggered from EFI Runtime Service.

Platform
ASUS PN64 NUC Mini PC

Codebase
ACRN master

Scenario
Shared. With UC-lock detection enabled.

Log:
WARNING: no console will be available to OS
UEFI environment detected.
Multiboot2 Bootloader: GRUB 2.12-5
ACRN Hypervisor
[19277869us][cpu=0][(null)][sev=2][seq=1]:calibrate_tsc: tsc_khz = 3187200
[19285716us][cpu=0][(null)][sev=2][seq=2]:HV: 3.4-unstable-usb-stream-2024-11-29-08:50:02-459c5960c DBG shared@nuc build by qzhang4, start time 19275958us
[19301732us][cpu=0][(null)][sev=2][seq=3]:Detect processor: 13th Gen Intel(R) Core(TM) i5-13500H
[19312407us][cpu=0][(null)][sev=2][seq=4]:ptm info [0:6.0]: pos=150, enabled=1, root_select=1, granularity=0.

[19324000us][cpu=0][(null)][sev=2][seq=5]:ptm info [0:7.0]: pos=150, enabled=1, root_select=1, granularity=0.

[19335584us][cpu=0][(null)][sev=2][seq=6]:ptm info [0:7.3]: pos=150, enabled=1, root_select=1, granularity=0.

[19347915us][cpu=0][(null)][sev=2][seq=7]:ptm info [0:1d.0]: pos=150, enabled=1, root_select=1, granularity=0.

[19359572us][cpu=0][(null)][sev=2][seq=8]:ptm info [0:1d.1]: pos=150, enabled=1, root_select=1, granularity=0.

[19372450us][cpu=0][(null)][sev=2][seq=9]:pci_enumerate_ext_cap: [4:0.0] is PTM capable.

[19411220us][cpu=0][(null)][sev=3][seq=59]:pci_vdev_update_vbar_base reprogram PCI:00:1f.5 BAR0 to addr:0xfe010000, which is out of mmio window[0x80400000 - 0xc0000000] or not aligned with size: 0x1000
[19435066us][cpu=0][(null)][sev=2][seq=111]:Start VM id: 0 name: ACRN_Service_VM
ACRN:>[19665714us][cpu=0][vm0:vcpu0][sev=1][seq=115]:dispatch VM exit handler failed for reason 32, ret = -13!
[19677908us][cpu=0][vm0:vcpu0][sev=1][seq=116]:dispatch VM exit handler failed for reason 32, ret = -13!
[19689974us][cpu=0][vm0:vcpu0][sev=1][seq=117]:dispatch VM exit handler failed for reason 32, ret = -13!
[19700827us][cpu=0][vm0:vcpu0][sev=1][seq=118]:dispatch VM exit handler failed for reason 32, ret = -13!
[19712574us][cpu=0][vm0:vcpu0][sev=1][seq=119]:dispatch VM exit handler failed for reason 32, ret = -13!
vm_console

----- Entering VM 0 Shell -----
alized kernel on bare hardware
[ 0.039863] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns
[ 0.039868] setup_percpu: NR_CPUS:32 nr_cpumask_bits:16 nr_cpu_ids:16 nr_node_ids:1
[ 0.040289] percpu: Embedded 53 pages/cpu s178424 r8192 d30472 u262144
[ 0.040297] pcpu-alloc: s178424 r8192 d30472 u262144 alloc=1*2097152
[ 0.040299] pcpu-alloc: [0] 00 01 02 03 04 05 06 07 [0] 08 09 10 11 12 13 14 15
[ 0.040322] Built 1 zonelists, mobility grouping on. Total pages: 7719344
[ 0.040324] Kernel command line: rw rootwait console=tty0 console=ttyS0 consoleblank=0 no_timer_check ignore_loglevel maxcpus=16 hugepagesz=1G hugepages= udmabuf.list_limit=8192 root=PARTUUID=c32a3436-d92a-4830-9320-030a34d98f27
[ 0.040378] random: crng init done
[ 0.042525] Dentry cache hash table entries: 4194304 (order: 13, 33554432 bytes, linear)
[ 0.043627] Inode-cache hash table entries: 2097152 (order: 12, 16777216 bytes, linear)
[ 0.043722] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[ 0.043723] software IO TLB: area num 16.
[ 0.088753] Memory: 30705528K/31368108K available (22543K kernel code, 3521K rwdata, 10856K rodata, 2148K init, 6416K bss, 662320K reserved, 0K cma-reserved)
[ 0.089407] kmemleak: Kernel memory leak detector disabled
[ 0.089417] ftrace: allocating 61935 entries in 242 pages
[ 0.095756] ftrace: allocated 242 pages with 5 groups
[ 0.095795] Dynamic Preempt: full
[ 0.095817] rcu: Preemptible hierarchical RCU implementation.
[ 0.095817] rcu: RCU event tracing is enabled.
[ 0.095818] rcu: RCU restricting CPUs from NR_CPUS=32 to nr_cpu_ids=16.
[ 0.095818] Trampoline variant of Tasks RCU enabled.
[ 0.095819] Rude variant of Tasks RCU enabled.
[ 0.095819] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies.
[ 0.095820] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=16
[ 0.098810] NR_IRQS: 4352, nr_irqs: 2184, preallocated irqs: 16
[ 0.098965] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[ 0.099509] Console: colour dummy device 80x25
[ 0.099716] printk: console [tty0] enabled
[ 0.123255] printk: console [ttyS0] enabled
[ 0.123330] ACPI: Core revision 20220331
[ 0.187743] hpet: HPET dysfunctional in PC10. Force disabled.
[ 0.187858] APIC: Switch to symmetric I/O mode setup
[ 0.188538] x2apic enabled
[ 0.189164] Switched APIC routing to physical x2apic.
[ 0.191445] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x2df10e7656b, max_idle_ns: 440795364873 ns
[ 0.191632] Calibrating delay loop (skipped), value calculated using timer frequency.. 6374.40 BogoMIPS (lpj=3187200)
[ 0.192630] unchecked MSR access error: WRMSR to 0x19b (tried to write 0x0000000000000013) at rIP: 0xffffffffa9e0fb28 (intel_init_thermal+0x328/0x420)
[ 0.192630] Call Trace:
[ 0.192630]
[ 0.192630] ? show_stack_regs+0x23/0x29
[ 0.192630] ? ex_handler_msr.isra.0.cold+0x5b/0x60
[ 0.192630] ? fixup_exception+0x19a/0x310
[ 0.192630] ? exc_general_protection+0xda/0x490
[ 0.192630] ? asm_exc_general_protection+0x27/0x30
[ 0.192630] ? intel_init_thermal+0x328/0x420
[ 0.192630] init_intel+0xeb/0x490
[ 0.192630] identify_cpu+0x294/0x7f0
[ 0.192630] identify_boot_cpu+0x10/0x9e
[ 0.192630] arch_cpu_finalize_init+0x9/0x4c
[ 0.192630] start_kernel+0x60b/0x6b8
[ 0.192630] x86_64_start_reservations+0x24/0x2a
[ 0.192630] x86_64_start_kernel+0x8c/0x95
[ 0.192630] secondary_startup_64_no_verify+0xe0/0xeb
[ 0.192630]
[ 0.192630] CPU0: Thermal monitoring enabled (TM1)
[ 0.192630] x86/cpu: User Mode Instruction Prevention (UMIP) activated
[ 0.192630] process: using mwait in idle threads
[ 0.192630] Last level iTLB entries: 4KB 0, 2MB 0, 4MB 0
[ 0.192630] Last level dTLB entries: 4KB 0, 2MB 0, 4MB 0, 1GB 0
[ 0.192630] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization
[ 0.192630] Spectre V2 : Mitigation: Enhanced IBRS
[ 0.192630] Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch
[ 0.192630] Spectre V2 : Spectre v2 / PBRSB-eIBRS: Retire a single CALL on VMEXIT
[ 0.192630] Spectre V2 : mitigation: Enabling conditional Indirect Branch Prediction Barrier
[ 0.192630] Speculative Store Bypass: Mitigation: Speculative Store Bypass disabled via prctl
[ 0.192630] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[ 0.192630] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[ 0.192630] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[ 0.192630] x86/fpu: Supporting XSAVE feature 0x200: 'Protection Keys User registers'
[ 0.192630] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
[ 0.192630] x86/fpu: xstate_offset[9]: 832, xstate_sizes[9]: 8
[ 0.192630] x86/fpu: Enabled xstate features 0x207, context size is 840 bytes, using 'compacted' format.
[ 0.192630] Freeing SMP alternatives memory: 52K
[ 0.192630] pid_max: default: 32768 minimum: 301
[ 0.192630] general protection fault: 0000 [#1] PREEMPT SMP
[ 0.192630] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 6.1.77-acrn-service-vm-00030-g492d635b5bf0-dirty #8
[ 0.192630] Hardware name: ASUSTeK COMPUTER INC. MINIPC PN64-E1/PN64-E1, BIOS 1.11.00 01/18/2024
[ 0.192630] RIP: 0010:0x73ef669c
[ 0.192630] Code: Unable to access opcode bytes at 0x73ef6672.
[ 0.192630] RSP: 0000:ffffffffab403cd0 EFLAGS: 00010046
[ 0.192630] RAX: 0000000000000000 RBX: 0000000000000001 RCX: 0000000000000001
[ 0.192630] RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000073ec2504
[ 0.192630] RBP: ffffffffab403e40 R08: 0000000000000000 R09: 0000000073ec4060
[ 0.192630] R10: 0000000000000028 R11: 0000000000001000 R12: 0000000000000000
[ 0.192630] R13: 0000000003111004 R14: 000000000000001f R15: 0000000073ec4060
[ 0.192630] FS: 0000000000000000(0000) GS:ffffa43d77600000(0000) knlGS:0000000000000000
[ 0.192630] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 0.192630] CR2: ffffa43d95dff000 CR3: 000000010032c000 CR4: 0000000000750ef0
[ 0.192630] PKRU: 55555554
[ 0.192630] Call Trace:
[ 0.192630]
[ 0.192630] ? __die_body.cold+0x1a/0x1f
[ 0.192630] ? die_addr+0x3d/0x60
[ 0.192630] ? exc_general_protection+0x1b3/0x490
[ 0.192630] ? asm_exc_general_protection+0x27/0x30
[ 0.192630] ? _raw_spin_unlock+0xe/0x30
[ 0.192630] ? __change_page_attr_set_clr+0x3c8/0xe50
[ 0.192630] ? switch_mm_irqs_off+0x446/0x570
[ 0.192630] ? trace_hardirqs_on+0x36/0xf0
[ 0.192630] ? __efi_call+0x25/0x30
[ 0.192630] efi_set_virtual_address_map+0x60/0x97
[ 0.192630] efi_enter_virtual_mode+0x2ab/0x2fa
[ 0.192630] start_kernel+0x625/0x6b8
[ 0.192630] x86_64_start_reservations+0x24/0x2a
[ 0.192630] x86_64_start_kernel+0x8c/0x95
[ 0.192630] secondary_startup_64_no_verify+0xe0/0xeb
[ 0.192630]
[ 0.192630] Modules linked in:
[ 0.192630] ---[ end trace 0000000000000000 ]---
[ 0.192630] RIP: 0010:0x73ef669c
[ 0.192630] Code: Unable to access opcode bytes at 0x73ef6672.
[ 0.192630] RSP: 0000:ffffffffab403cd0 EFLAGS: 00010046
[ 0.192630] RAX: 0000000000000000 RBX: 0000000000000001 RCX: 0000000000000001
[ 0.192630] RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000073ec2504
[ 0.192630] RBP: ffffffffab403e40 R08: 0000000000000000 R09: 0000000073ec4060
[ 0.192630] R10: 0000000000000028 R11: 0000000000001000 R12: 0000000000000000
[ 0.192630] R13: 0000000003111004 R14: 000000000000001f R15: 0000000073ec4060
[ 0.192630] FS: 0000000000000000(0000) GS:ffffa43d77600000(0000) knlGS:0000000000000000
[ 0.192630] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 0.192630] CR2: ffffa43d95dff000 CR3: 000000010032c000 CR4: 0000000000750ef0
[ 0.192630] PKRU: 55555554
[ 0.192630] Kernel panic - not syncing: Fatal exception
[ 0.192630] Rebooting in 10 seconds..

@zhangqiang4 zhangqiang4 added the status: new The issue status: new for creation label Dec 10, 2024
@zhangqiang4
Copy link
Contributor Author

ACRN-11828

zhangqiang4 added a commit to zhangqiang4/acrn-hypervisor that referenced this issue Dec 10, 2024
Print the raw Codes to help debug.

Tracked-On: projectacrn#8750
Signed-off-by: Qiang Zhang <qiang4.zhang@intel.com>
zhangqiang4 added a commit to zhangqiang4/acrn-hypervisor that referenced this issue Dec 10, 2024
Tracked-On: projectacrn#8750
Signed-off-by: Qiang Zhang <qiang4.zhang@intel.com>
zhangqiang4 added a commit to zhangqiang4/acrn-hypervisor that referenced this issue Dec 10, 2024
LOCK prefix is one of 4-group instruction prefixes and it may not be the
first prefix because 4 groups of prefixes can be arranged in arbitrary
order. Thus conceptually, we have to emulate all bus-lock instructions
to support bus-lock(uc/ac) detection.

This patch adds cmpxchg support which may trigger bus-lock if memory is
mapped uncached.

Tracked-On: projectacrn#8750
Signed-off-by: Qiang Zhang <qiang4.zhang@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: new The issue status: new for creation
Projects
None yet
Development

No branches or pull requests

1 participant