Re: [RFC PATCH V3 00/16] x86/hyperv/sev: Add AMD sev-snp enlightened guest support on hyperv
From: Gupta, Pankaj
Date: Wed Mar 15 2023 - 02:40:41 EST
Hi Tianyu,
Hi Tianyu,
While testing the guest patches on KVM host, My guest kernel is stuck
at early bootup. As it did not seem a hang but sort of loop where
interrupts are getting processed from "pv_native_irq_enable" path
repeatedly and prevent boot process to make progress IIUC. Did you
face any such scenario in your testing?
It seems to me "native_irq_enable" enable interrupts and
"check_hv_pending_irq_enable" starts handling the interrupts (after
disabling irqs). But "check_hv_pending_irq_enable=>do_exc_hv" can
again call "pv_native_irq_enable" in interrupt handling path and
execute the same loop?
I don't meet the issue. Thanks for report. I will double check and
report back.
Thank you!
More testing with the patches: After I commented out "do_exc_hv" from
pv_native_irq_enable()->check_hv_pending_irq_enable() code path. Now, I
am getting below [2] stack trace repeatedly when I dump stack.
This seems to me after IST stack return from #VC handling
for "native_cpuid", paranoid_exit =>"do_exc_hv" is handling interrupts.
As we don't disable interrupts in check_hv_pending()=>do_exc_hv(), so
interrupts are handled continuously here. This also prevents the boot
processor to make progress and stuck here.
Thoughts please? as I might be missing some important details here.
Thanks,
Pankaj
[2]
[ 59.845396] Call Trace:^M
[ 59.845703] <TASK>^M
[ 59.845980] dump_stack_lvl+0x4d/0x67^M
[ 59.846432] dump_stack+0x14/0x1a^M
[ 59.846842] do_exc_hv.cold+0x22/0xfd^M
[ 59.847301] check_hv_pending+0x38/0x50^M
[ 59.847773] paranoid_exit+0x8/0x70^M
[ 59.848205] RIP: 0010:native_cpuid+0x19/0x30^M
[ 59.848729] Code: 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
f3 0f 1e fa 55 49 89 f8 49 89 c9 48 89 d7 41 8b 00 48 89 e5 53 8b 0a 0f
a2 <41> 89 00 89 1e 48 8b 5d f8 89 0f 41 89 11 c9 e9 f7 bc df 00 0f 1f^M
[ 59.850995] RSP: 0000:ffffffffbd403e48 EFLAGS: 00010202^M
[ 59.851636] RAX: 000000000100007b RBX: 0000000000000000 RCX:
0000000000000000^M
[ 59.852498] RDX: 0000000000000000 RSI: ffffffffbd403e64 RDI:
ffffffffbd403e68^M
[ 59.853361] RBP: ffffffffbd403e50 R08: ffffffffbd403e60 R09:
ffffffffbd403e6c^M
[ 59.854240] R10: ffffffffbd403d10 R11: ffff9af5bff3cfe8 R12:
0000000000000056^M
[ 59.855111] R13: ffff9af5bffc8e40 R14: 0000000000000000 R15:
ffffffffbd41a120^M
[ 59.855976] kvm_arch_para_features+0x4e/0x80^M
[ 59.856511] pv_ipi_supported+0xe/0x34^M
[ 59.856973] kvm_apic_init+0x12/0x3f^M
[ 59.857414] apic_intr_mode_init+0x8d/0x10d^M
[ 59.857939] x86_late_time_init+0x28/0x3d^M
[ 59.858435] start_kernel+0x8af/0x970^M
[ 59.858894] x86_64_start_reservations+0x28/0x2e^M
[ 59.859461] x86_64_start_kernel+0x96/0xa0^M
[ 59.859965] secondary_startup_64_no_verify+0xe5/0xeb^M
[ 59.860583] </TASK>^M