Re: [BUG REPORT] Triggering a panic in an x86 virtual machine does not wait

From: Baokun Li
Date: Fri Jul 07 2023 - 08:40:31 EST


On 2023/7/7 18:18, Thomas Gleixner wrote:
On Thu, Jul 06 2023 at 14:44, Baokun Li wrote:
On 2023/7/5 16:59, Thomas Gleixner wrote:
+ /*
+ * If this is a crash stop which does not execute on the boot CPU,
+ * then this cannot use the INIT mechanism because INIT to the boot
+ * CPU will reset the machine.
+ */
+ if (this_cpu)
+ return false;

This does solve the problem of x86 VMs not waiting when they panic, so

Reported-and-tested-by: Baokun Li <libaokun1@xxxxxxxxxx>

This patch does fix the problem of rebooting at panic, but the
exported stack stays at stop_this_cpu() like below, instead of showing
what the corresponding process is doing as before.

PID: 681      TASK: ffff9ac2429d3080  CPU: 2    COMMAND: "fsstress"
 #0 [ffffb00200184fd0] stop_this_cpu at ffffffff89a4ffd8
 #1 [ffffb00200184fe8] __sysvec_reboot at ffffffff89a94213
 #2 [ffffb00200184ff0] sysvec_reboot at ffffffff8aee7491
--- <IRQ stack> ---
    RIP: 0000000000000010  RSP: 0000000000000018  RFLAGS: ffffb00200f8bd08
    RAX: ffff9ac256fda9d8  RBX: 0000000009973a85  RCX: ffff9ac256fda078
    RDX: ffff9ac24416e300  RSI: ffff9ac256fda9e0  RDI: ffffffffffffffff
    RBP: ffff9ac2443a5f88   R8: 0000000000000000   R9: ffff9ac2422eeea0
    R10: ffff9ac256fda9d8  R11: 0000000000549921  R12: ffff9ac2422eeea0
    R13: ffff9ac251cd23c8  R14: ffff9ac24269a800  R15: ffff9ac251cd2150
    ORIG_RAX: ffffffff8a1719e4  CS: 0206  SS: ffffffff8a1719c8
bt: WARNING: possibly bogus exception frame

Do you know how this happened? I would be grateful if you could fix it.
No, I don't. But there is clearly a hint:

bt: WARNING: possibly bogus exception frame
So the exception frame seems to be corrupted. I have no idea why.

The question is, whether this goes away when you revert that commit or not.
I can't oracle that out from your report.

Can you please revert 45e34c8af58f on top of Linus tree and verify that
it makes the issue go away?

Thanks,

tglx
Yes, the stop_this_cpu() issue persisted after I reverted 45e34c8af58f and it
has nothing to do with your patch, I will try to bisect to find out which patch
introduced the issue.

Thank you very much for helping locate and rectify the problem that the x86
VM panic does not wait!

Cheers!
--
With Best Regards,
Baokun Li
.