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

From: Peter Zijlstra
Date: Fri Jul 12 2019 - 08:06:47 EST


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?

The sole user seems to be get_trap_addr() and that talks about ISTs, but
#BP isn't an IST anymore, so why does it have ist_okay=true?