|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 11/24] xen/arm: traps: Improve logging for data/prefetch abort fault
On Tue, 12 Sep 2017, Julien Grall wrote:
> Walk the hypervisor page table for data/prefetch abort fault to help
> diagnostics error in the page tables.
>
> Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
> Reviewed-by: Andre Przywara <andre.przywara@xxxxxxx>
Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> ---
> Andre, I assumed you were happy with changes you suggested, so I
> kept your reviewed-by.
>
> Changes in v2:
> - Add Andre's reviewed-by
> - Simplify condition check
> - Update warning message
> ---
> xen/arch/arm/traps.c | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
> index 2e48089d61..0b856fb4fd 100644
> --- a/xen/arch/arm/traps.c
> +++ b/xen/arch/arm/traps.c
> @@ -2986,7 +2986,26 @@ void do_trap_hyp_sync(struct cpu_user_regs *regs)
> do_trap_brk(regs, hsr);
> break;
> #endif
> + case HSR_EC_DATA_ABORT_CURR_EL:
> + case HSR_EC_INSTR_ABORT_CURR_EL:
> + {
> + bool is_data = (hsr.ec == HSR_EC_DATA_ABORT_CURR_EL);
> + const char *fault = (is_data) ? "Data Abort" : "Instruction Abort";
> +
> + printk("%s Trap. Syndrome=%#x\n", fault, hsr.iss);
> + /*
> + * FAR may not be valid for a Synchronous External abort other
> + * than translation table walk.
> + */
> + if ( hsr.xabt.fsc == FSC_SEA && hsr.xabt.fnv )
> + printk("Invalid FAR, not walking the hypervisor tables\n");
> + else
> + dump_hyp_walk(get_hfar(is_data));
> +
> + do_unexpected_trap(fault, regs);
>
> + break;
> + }
> default:
> printk("Hypervisor Trap. HSR=0x%x EC=0x%x IL=%x
> Syndrome=0x%"PRIx32"\n",
> hsr.bits, hsr.ec, hsr.len, hsr.iss);
> --
> 2.11.0
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |