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

Re: [Xen-devel] [Xen-users] Hypervisor trap when dumping register





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@xxxxxxxxxx>
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@xxxxxxxxxx>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
    Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Acked-by: Julien Grall <julien.grall@xxxxxxx> [ARM]
    Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
    Release-acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>

Wei, can you consider to add this bug as a blocker?

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