[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v4 38/39] arm/xen-access: Extend xen-access for altp2m on ARM
Signed-off-by: Sergej Proskurin <proskurin@xxxxxxxxxxxxx> Acked-by: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx> --- Cc: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx> Cc: Tamas K Lengyel <tamas@xxxxxxxxxxxxx> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Wei Liu <wei.liu2@xxxxxxxxxx> --- tools/tests/xen-access/xen-access.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/tools/tests/xen-access/xen-access.c b/tools/tests/xen-access/xen-access.c index 1e69e25a16..481337cacd 100644 --- a/tools/tests/xen-access/xen-access.c +++ b/tools/tests/xen-access/xen-access.c @@ -362,10 +362,11 @@ void usage(char* progname) { fprintf(stderr, "Usage: %s [-m] <domain_id> write|exec", progname); #if defined(__i386__) || defined(__x86_64__) - fprintf(stderr, "|breakpoint|altp2m_write|altp2m_exec|debug|cpuid|desc_access|write_ctrlreg_cr4"); + fprintf(stderr, "|breakpoint|debug|cpuid|desc_access|write_ctrlreg_cr4"); #elif defined(__arm__) || defined(__aarch64__) fprintf(stderr, "|privcall"); #endif + fprintf(stderr, "|altp2m_write|altp2m_exec"); fprintf(stderr, "\n" "Logs first page writes, execs, or breakpoint traps that occur on the domain.\n" @@ -441,18 +442,6 @@ int main(int argc, char *argv[]) { breakpoint = 1; } - else if ( !strcmp(argv[0], "altp2m_write") ) - { - default_access = XENMEM_access_rx; - altp2m = 1; - memaccess = 1; - } - else if ( !strcmp(argv[0], "altp2m_exec") ) - { - default_access = XENMEM_access_rw; - altp2m = 1; - memaccess = 1; - } else if ( !strcmp(argv[0], "debug") ) { debug = 1; @@ -475,6 +464,18 @@ int main(int argc, char *argv[]) privcall = 1; } #endif + else if ( !strcmp(argv[0], "altp2m_write") ) + { + default_access = XENMEM_access_rx; + altp2m = 1; + memaccess = 1; + } + else if ( !strcmp(argv[0], "altp2m_exec") ) + { + default_access = XENMEM_access_rw; + altp2m = 1; + memaccess = 1; + } else { usage(argv[0]); @@ -547,12 +548,14 @@ int main(int argc, char *argv[]) goto exit; } +#if defined(__i386__) || defined(__x86_64__) rc = xc_monitor_singlestep( xch, domain_id, 1 ); if ( rc < 0 ) { ERROR("Error %d failed to enable singlestep monitoring!\n", rc); goto exit; } +#endif } if ( memaccess && !altp2m ) @@ -663,7 +666,9 @@ int main(int argc, char *argv[]) rc = xc_altp2m_switch_to_view( xch, domain_id, 0 ); rc = xc_altp2m_destroy_view(xch, domain_id, altp2m_view_id); rc = xc_altp2m_set_domain_state(xch, domain_id, 0); +#if defined(__i386__) || defined(__x86_64__) rc = xc_monitor_singlestep(xch, domain_id, 0); +#endif } else { rc = xc_set_mem_access(xch, domain_id, XENMEM_access_rwx, ~0ull, 0); rc = xc_set_mem_access(xch, domain_id, XENMEM_access_rwx, START_PFN, @@ -883,9 +888,11 @@ int main(int argc, char *argv[]) exit: if ( altp2m ) { +#if defined(__i386__) || defined(__x86_64__) uint32_t vcpu_id; for ( vcpu_id = 0; vcpu_id<XEN_LEGACY_MAX_VCPUS; vcpu_id++) rc = control_singlestep(xch, domain_id, vcpu_id, 0); +#endif } /* Tear down domain xenaccess */ -- 2.13.3 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |