Re: [PATCH v2] xen/pv: Fix a boot up hang revealed by int3 self test

From: Zhenzhong Duan
Date: Fri Jul 12 2019 - 09:30:42 EST


On 2019/7/12 21:09, Peter Zijlstra wrote:
On Fri, Jul 12, 2019 at 09:04:22PM +0800, Zhenzhong Duan wrote:
On 2019/7/12 20:06, Peter Zijlstra wrote:
On Thu, Jul 11, 2019 at 04:15:21PM +0800, Zhenzhong Duan wrote:
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 4722ba2..2138d69 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -596,7 +596,7 @@ struct trap_array_entry {
static struct trap_array_entry trap_array[] = {
{ debug, xen_xendebug, true },
- { int3, xen_xenint3, true },
+ { int3, xen_int3, true },
{ double_fault, xen_double_fault, true },
#ifdef CONFIG_X86_MCE
{ machine_check, xen_machine_check, true },
I'm confused on the purpose of trap_array[], could you elucidate me?
Used to replace trap handler addresses by Xen specific ones and sanity check

if there's an unexpected IST-using fault handler.
git grep xen_int3, failed me. Where does that symbol come from?

Generated by "xen_pv_trap int3" in arch/x86/xen/xen-asm_64.S

Zhenzhong