[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] xen: arm64: more useful logging on bad trap.



On Wed, Feb 18, 2015 at 10:19 AM, Ian Campbell <ian.campbell@xxxxxxxxxx> wrote:
> Dump the register state before panicing so we have some clue where the
> issue occurred. Also decode the ESR register a bit to save having to
> grab a pen and paper.
>
> ESR_EL2 is a 32-bit register, so use SYSREG_READ32 not ..._READ64, as
> we already do correctly in the main trap handler.
>
> While here notice that do_trap_serror is never called and remove it.
>
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> Cc: jintack@xxxxxxxxxxxxxxx
> ---
> Jintack, since you have a system which is exhibiting SError issues I
> wonder if I could prevail on you to give this patch a try on your
> system and report on the output. I've only compile tested this myself.
> ---

Hi Ian,
this is the output I got from the machine.
Thanks!

Xen 4.5.0 (c/s Mon Jan 12 11:30:05 2015 -0500 git:a8ac229-dirty) EFI
loader
Using configuration file 'xen.cfg'
vmlinuz-3.18.0+: 0x00000083fbd8f000-0x00000083fc5195c0
 Xen 4.5.0
(XEN) Xen version 4.5.0 (jintack@) (gcc (Ubuntu/Linaro
4.8.2-19ubuntu1) 4.8.2) debug=n Wed Feb 18 5
(XEN) Latest ChangeSet: Mon Jan 12 11:30:05 2015 -0500
git:a8ac229-dirty
(XEN) Processor: 410fd070: "ARM Limited", variant: 0x0, part 0xd07,
rev 0x0
(XEN) 64-bit Execution:
(XEN)   Processor Features: 0000000000002222 0000000000000000
(XEN)     Exception Levels: EL3:64+32 EL2:64+32 EL1:64+32 EL0:64+32
(XEN)     Extensions: FloatingPoint AdvancedSIMD
(XEN)   Debug Features: 0000000010305106 0000000000000000
(XEN)   Auxiliary Features: 0000000000000000 0000000000000000
(XEN)   Memory Model Features: 0000000000001124 0000000000000000
(XEN)   ISA Features:  0000000000011120 0000000000000000
(XEN) 32-bit Execution:
(XEN)   Processor Features: 00000131:00011011
(XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 Jazelle
(XEN)     Extensions: GenericTimer Security
(XEN)   Debug Features: 03010066
(XEN)   Auxiliary Features: 00000000
(XEN)   Memory Model Features: 10101105 40000000 01260000 02102211
(XEN)  ISA Features: 02101110 13112111 21232042 01112131 00011142
00011121
(XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27
(XEN) Using generic timer at 187500 KHz
(XEN) GICv2 initialization:
(XEN)         gic_dist_addr=00000000e1110000
(XEN)         gic_cpu_addr=00000000e112f000
(XEN)         gic_hyp_addr=00000000e1140000
(XEN)         gic_vcpu_addr=00000000e1160000
(XEN)         gic_maintenance_irq=24
(XEN) GICv2: 448 lines, 8 cpus, secure (IID 0200143b).
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Bad mode in Error handler detected, code 0xbf000000, EC=2f, IL=1
ISS=1000000
(XEN) ----[ Xen-4.5.0  arm64  debug=n  Not tainted ]----
(XEN) CPU:    0
(XEN) PC:     00000000002770f0 start_xen+0x920/0xc98
(XEN) LR:     00000000002770e8
(XEN) SP:     00000000002a7e10
(XEN) CPSR:   00000249 MODE:64-bit EL2h (Hypervisor, handler)
(XEN)      X0: 00008003fff87000  X1: 0000000000000000  X2:
0000800030001570
(XEN)      X3: 0000000000000000  X4: 00000000000009a1  X5:
0000000000000000
(XEN)      X6: 000080003000161e  X7: 6f74717164736d48  X8:
7f7f7f7f7f7f7f7f
(XEN)      X9: fefefefefeff7273 X10: 7f7f7f7f7f7f7f7f X11:
0101010101010101
(XEN)     X12: 0000000000000010 X13: 000000000026b000 X14:
00000000002183b0
(XEN)     X15: 0000000000000000 X16: 0000000000000000 X17:
0000000000000000
(XEN)     X18: 0000000000000000 X19: 000000000026b710 X20:
00000000002b0000
(XEN)     X21: 000000000026b000 X22: 000000000026b000 X23:
0000000000290860
(XEN)     X24: 0000000000000004 X25: 0000008400000000 X26:
0000008001000000
(XEN)     X27: 0000008400000000 X28: 00000000003fd977  FP:
0000000000000000
(XEN)
(XEN)   VTCR_EL2: 80000000
(XEN)  VTTBR_EL2: 0000000000000000
(XEN)
(XEN)  SCTLR_EL2: 30cd183d
(XEN)    HCR_EL2: 000000000038643f
(XEN)  TTBR0_EL2: 0000008027ee4000
(XEN)
(XEN)    ESR_EL2: bf000000
(XEN)  HPFAR_EL2: 0000000000000000
(XEN)    FAR_EL2: 0000000000000000
(XEN)
(XEN) Xen stack trace from sp=00000000002a7e10:
(XEN)    00000083fc520000 00000083fc320000 00000083fc51a000
0000000000000000
(XEN)    00000083fff70668 0000000000000000 0000000000000001
00000083fc58b000
(XEN)    0000000000000000 00000083fc5b0030 00000083fc5201d8
0000000000000000
(XEN)    0000000000000000 00000083ffe70000 0000000d00000000
00000003fd977000
(XEN)    000000000026b000 00000000002f2000 00000083fc51a000
0000000000004000
(XEN)    0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN)    0000000000000000 0000000000000000
(XEN) Xen call trace:
(XEN)    [<00000000002770f0>] start_xen+0x920/0xc98 (PC)
(XEN)    [<00000000002770e8>] start_xen+0x918/0xc98 (LR)
(XEN)
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) bad mode
(XEN) ****************************************
(XEN)
(XEN) Reboot in five seconds...

On Wed, Feb 18, 2015 at 10:36 AM, Julien Grall <julien.grall@xxxxxxxxxx> wrote:
> Hi Ian,
>
> On 18/02/2015 15:19, Ian Campbell wrote:
>>
>> diff --git a/xen/arch/arm/arm64/traps.c b/xen/arch/arm/arm64/traps.c
>> index 1693b5d..89b8eb3 100644
>> --- a/xen/arch/arm/arm64/traps.c
>> +++ b/xen/arch/arm/arm64/traps.c
>> @@ -24,11 +24,6 @@
>>
>>   #include <public/xen.h>
>>
>> -asmlinkage void do_trap_serror(struct cpu_user_regs *regs)
>> -{
>> -    panic("Unhandled serror trap");
>> -}
>> -
>>   static const char *handler[]= {
>>           "Synchronous Abort",
>>           "IRQ",
>> @@ -38,11 +33,13 @@ static const char *handler[]= {
>>
>>   asmlinkage void do_bad_mode(struct cpu_user_regs *regs, int reason)
>>   {
>> -    uint64_t esr = READ_SYSREG64(ESR_EL2);
>> -    printk("Bad mode in %s handler detected, code 0x%08"PRIx64"\n",
>> -           handler[reason], esr);
>
>
> While you are modifying this function. Can you add a newline after the
> declarations?
>
> Other than that:
>
> Reviewed-by: Julien Grall <julien.grall@xxxxxxxxxx>
>
> Regards,
>
> --
> Julien Grall
>


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.