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

Re: [Xen-devel] [PATCH v9 16/27] x86, xsplice: Print payload's symbol name and payload name in backtraces



>>> On 27.04.16 at 05:31, <konrad.wilk@xxxxxxxxxx> wrote:
> From affca85da4d57c466cc3a603afa4d57fea7ed092 Mon Sep 17 00:00:00 2001
> From: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
> Date: Fri, 22 Apr 2016 11:16:36 -0400
> Subject: [PATCH] x86, xsplice: Print payload's symbol name and payload name in
>  backtraces
> 
> Naturally the backtrace is presented when an instruction
> hits an bug_frame or %p is used.
> 
> The payloads do not support bug_frames yet - however the functions
> the payloads call could hit an BUG() or WARN().
> 
> The traps.c has logic to scan for it this - and eventually it will
> find the correct bug_frame and the walk the stack using %p to print
> the backtrace. For %p and symbols to print a string -  the
> 'is_active_kernel_text' is consulted which uses an 'struct virtual_region'.
> 
> Therefore we register our start->end addresses so that
> 'is_active_kernel_text' will include our payload address.
> 
> We also register our symbol lookup table function so that it can
> scan the list of payloads and retrieve the correct name.
> 
> Lastly we change vsprintf to take into account s and namebuf.
> For core code they are the same, but for payloads they are different.
> This gets us:
> 
> Xen call trace:
>    [<ffff82d080a00041>] revert_hook+0x31/0x35 [xen_hello_world]
>    [<ffff82d0801431bd>] xsplice.c#revert_payload+0x86/0xc6
>    [<ffff82d080143502>] check_for_xsplice_work+0x233/0x3cd
>    [<ffff82d08017a0b2>] domain.c#continue_idle_domain+0x9/0x1f
> 
> Which is great if payloads have similar or same symbol names.
> 
> Signed-off-by: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>


_______________________________________________
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®.