Re: [Xen-devel] [PATCH v4 6/9] arm/mem_access: Add software guest-page-table walk

2017-06-22 Thread Sergej Proskurin
Hi Julien, On 06/22/2017 01:16 PM, Julien Grall wrote: > Hi Sergej, > > On 20/06/17 21:33, Sergej Proskurin wrote: >> +int guest_walk_tables(const struct vcpu *v, vaddr_t gva, >> + paddr_t *ipa, unsigned int *perms) >> +{ >> +uint32_t sctlr = READ_SYSREG(SCTLR_EL1); >> +

Re: [Xen-devel] [PATCH v4 6/9] arm/mem_access: Add software guest-page-table walk

2017-06-22 Thread Julien Grall
Hi Sergej, On 20/06/17 21:33, Sergej Proskurin wrote: +int guest_walk_tables(const struct vcpu *v, vaddr_t gva, + paddr_t *ipa, unsigned int *perms) +{ +uint32_t sctlr = READ_SYSREG(SCTLR_EL1); +register_t tcr = READ_SYSREG(TCR_EL1); +unsigned int _perms = GV2M_R

[Xen-devel] [PATCH v4 6/9] arm/mem_access: Add software guest-page-table walk

2017-06-20 Thread Sergej Proskurin
The function p2m_mem_access_check_and_get_page in mem_access.c translates a gva to an ipa by means of the hardware functionality of the ARM architecture. This is implemented in the function gva_to_ipa. If mem_access is active, hardware-based gva to ipa translation might fail, as gva_to_ipa uses the