* Re: [Xen-users] Hypervisor trap when dumping register
2016-05-25 11:24 ` [Xen-users] Hypervisor trap when dumping register Julien Grall
@ 2016-05-25 12:24 ` Julien Grall
0 siblings, 0 replies; 2+ messages in thread
From: Julien Grall @ 2016-05-25 12:24 UTC (permalink / raw)
To: Chenxiao Zhao, Xen Devel, Stefano Stabellini, Wei Liu
Cc: Andrew Cooper, Jan Beulich
On 25/05/16 12:24, Julien Grall wrote:
> (Move the thread to Xen-devel)
>
> On 26/05/16 02:47, Chenxiao Zhao wrote:
>> On 5/25/2016 2:37 AM, Julien Grall wrote:
>
> [...]
>
>> root@linaro-alip:~# (XEN) *** Serial input -> Xen (type 'CTRL-x' three
>> times to
>> switch input to DOM0)
>> (XEN) 'd' pressed -> dumping registers
>> (XEN)
>> (XEN) *** Dumping CPU0 host state: ***
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000245f10Hypervisor Trap. HSR=0x96000007 EC=0x25
>> IL=1 Syndrome=0x7
>> (XEN) CPU0: Unexpected Trap: Hypervisor
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
>> IL=1 Syndrome=0x7
>> (XEN) CPU0: Unexpected Trap: Hypervisor
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
>> IL=1 Syndrome=0x7
>> (XEN) CPU0: Unexpected Trap: Hypervisor
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
>> IL=1 Syndrome=0x7
>> (XEN) CPU0: Unexpected Trap: Hypervisor
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
>> IL=1 Syndrome=0x7
>> (XEN) CPU0: Unexpected Trap: Hypervisor
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
>> IL=1 Syndrome=0x7
>> (XEN) CPU0: Unexpected Trap: Hypervisor
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
>> IL=1 Syndrome=0x7
>> (XEN) CPU0: Unexpected Trap: Hypervisor
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
>> IL=1 Syndrome=0x7
>> (XEN) CPU0: Unexpected Trap: Hypervisor
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
>> IL=1 Syndrome=0x7
>> (XEN) CPU0: Unexpected Trap: Hypervisor
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
>> IL=1 Syndrome=0x7
>> (XEN) CPU0: Unexpected Trap: Hypervisor
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
>> IL=1 Syndrome=0x7
>> (XEN) CPU0: Unexpected Trap: Hypervisor
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
>> IL=1 Syndrome=0x7
>> (XEN) CPU0: Unexpected Trap: Hypervisor
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
>> IL=1 Syndrome=0x7
>> (XEN) CPU0: Unexpected Trap: Hypervisor
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000231dc8Hypervisor Trap. HSR=0x96000007 EC=0x25
>> IL=1 Syndrome=0x7
>> (XEN) CPU0: Unexpected Trap: Hypervisor
>> (XEN) ----[ Xen-4.7.0-rc arm64 debug=y Tainted: C ]----
>> (XEN) CPU: 0
>> (XEN) PC: 0000000000231dc8
>
> I was able to reproduce it with the latest RC on Juno r2. I will
> investigate it.
The bisector fingered the patch:
commit 2aa925be84293b44ad587ed117184ace61b41dd6
Author: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date: Thu Mar 10 16:35:50 2016 -0500
arm/x86: Use struct virtual_region to do bug, symbol, and (x86)
exception tables lookup.
During execution of the hypervisor we have two regions of
executable code - stext -> _etext, and _sinittext -> _einitext.
The later is not needed after bootup.
We also have various built-in macros and functions to search
in between those two swaths depending on the state of the system.
That is either for bug_frames, exceptions (x86) or symbol
names for the instruction.
With xSplice in the picture - we need a mechanism for new payloads
to searched as well for all of this.
Originally we had extra 'if (xsplice)...' but that gets
a bit tiring and does not hook up nicely.
This 'struct virtual_region' and virtual_region_list provide a
mechanism to search for the bug_frames, exception table,
and symbol names entries without having various calls in
other sub-components in the system.
Code which wishes to participate in bug_frames and exception table
entries search has to only use two public APIs:
- register_virtual_region
- unregister_virtual_region
to let the core code know.
If the ->lookup_symbol is not then the default internal symbol lookup
mechanism is used.
Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Julien Grall <julien.grall@arm.com> [ARM]
Acked-by: Jan Beulich <jbeulich@suse.com>
Release-acked-by: Wei Liu <wei.liu2@citrix.com>
Wei, can you consider to add this bug as a blocker?
Regards,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 2+ messages in thread