How to intercept supervisor call using Xen?

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

How to intercept supervisor call using Xen?

harry2845
This post has NOT been accepted by the mailing list yet.
This post was updated on .
After reading the document of ARM, I set HCR.TGE to 1 at the init time.

    WRITE_SYSREG(HCR_TGE|HCR_PTW|HCR_BSU_OUTER|HCR_AMO|HCR_IMO|HCR_VM|HCR_TWI|HCR_TSC|
                 HCR_TAC, HCR_EL2);

And I add a case in the function do_trap_hyperviosr.

But after modifying, there will be a kernel panic when I execute Xen.

[    7.866384] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    7.866384]
[    7.881866] CPU: 0 PID: 1 Comm: init Not tainted 3.15.0-rc5+ #91
[    7.891024] [<80017dc4>] (unwind_backtrace) from [<800138f8>] (show_stack+0x20/0x24)
[    7.903640] [<800138f8>] (show_stack) from [<807864a4>] (dump_stack+0x70/0xc0)
[    7.915213] [<807864a4>] (dump_stack) from [<80781030>] (panic+0x9c/0x204)
[    7.926088] [<80781030>] (panic) from [<8002c900>] (do_exit+0x86c/0x9f0)
[    7.936615] [<8002c900>] (do_exit) from [<8002cbc0>] (do_group_exit+0x4c/0xcc)
[    7.948188] [<8002cbc0>] (do_group_exit) from [<8003b5dc>] (get_signal_to_deliver+0x37c/0x71c)
[    7.962535] [<8003b5dc>] (get_signal_to_deliver) from [<80780aec>] (do_signal+0xb4/0x380)
[    7.976013] [<80780aec>] (do_signal) from [<800131a8>] (do_work_pending+0x8c/0xe0)
[    7.988278] [<800131a8>] (do_work_pending) from [<8000f680>] (work_pending+0xc/0x20)
[    8.000901] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    8.000901]