[Xen-devel] [PATCH 12/18] arm/altp2m: Cosmetic fixes - function prototypes.

2016-07-04 Thread Sergej Proskurin
t p2m domain. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/p2m.c | 80 +- 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index 019f10e..9c

[Xen-devel] [PATCH 10/18] arm/altp2m: Renamed and extended p2m_alloc_table.

2016-07-04 Thread Sergej Proskurin
one in the x86 implementation. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/domain.c | 2 +- xen/arch/arm/p2m.c| 53 +-- xen/include/asm-arm/p2m.h | 2 +- 3 files changed, 44 insertions(+

[Xen-devel] [PATCH 18/18] arm/altp2m: Extend xen-access for altp2m on ARM.

2016-07-04 Thread Sergej Proskurin
Signed-off-by: Sergej Proskurin --- Cc: Razvan Cojocaru Cc: Tamas K Lengyel Cc: Ian Jackson Cc: Wei Liu --- tools/tests/xen-access/xen-access.c | 11 +-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/tests/xen-access/xen-access.c b/tools/tests/xen-access/xen

[Xen-devel] [PATCH 05/18] arm/altp2m: Add HVMOP_altp2m_set_domain_state.

2016-07-04 Thread Sergej Proskurin
The HVMOP_altp2m_set_domain_state allows to activate altp2m on a specific domain. This commit adopts the x86 HVMOP_altp2m_set_domain_state implementation. The function p2m_flush_altp2m is currently implemented in form of a stub. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc

[Xen-devel] [PATCH 10/18] arm/altp2m: Renamed and extended p2m_alloc_table.

2016-07-04 Thread Sergej Proskurin
one in the x86 implementation. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/domain.c | 2 +- xen/arch/arm/p2m.c| 53 +-- xen/include/asm-arm/p2m.h | 2 +- 3 files changed, 44 insertions(+

[Xen-devel] [PATCH 13/18] arm/altp2m: Make get_page_from_gva ready for altp2m.

2016-07-04 Thread Sergej Proskurin
his function. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/guestcopy.c | 6 +++--- xen/arch/arm/p2m.c | 19 +-- xen/arch/arm/traps.c | 2 +- xen/include/asm-arm/mm.h | 2 +- 4 files changed, 18 insertions(+), 11 delet

[Xen-devel] [PATCH 14/18] arm/altp2m: Add HVMOP_altp2m_set_mem_access.

2016-07-04 Thread Sergej Proskurin
The HVMOP HVMOP_altp2m_set_mem_access allows to set gfn permissions of (currently one page at a time) of a specific altp2m view. In case the view does not hold the requested gfn entry, it will be first copied from the hostp2m table and then modified as requested. Signed-off-by: Sergej Proskurin

[Xen-devel] [PATCH 12/18] arm/altp2m: Cosmetic fixes - function prototypes.

2016-07-04 Thread Sergej Proskurin
t p2m domain. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/p2m.c | 80 +- 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index 019f10e..9c

[Xen-devel] [PATCH 17/18] arm/altp2m: Adjust debug information to altp2m.

2016-07-04 Thread Sergej Proskurin
Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/p2m.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index 96892a5..de97a12 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c

[Xen-devel] [PATCH 06/18] arm/altp2m: Add a(p2m) table flushing routines.

2016-07-04 Thread Sergej Proskurin
point in time. In addition, the implementation clears all altp2m entries during the process of flushing. The same applies to hostp2m entries, when it is destroyed. In this way, further domain and p2m allocations will not unintentionally reuse old p2m mappings. Signed-off-by: Sergej Proskurin

[Xen-devel] [PATCH 14/18] arm/altp2m: Add HVMOP_altp2m_set_mem_access.

2016-07-04 Thread Sergej Proskurin
The HVMOP HVMOP_altp2m_set_mem_access allows to set gfn permissions of (currently one page at a time) of a specific altp2m view. In case the view does not hold the requested gfn entry, it will be first copied from the hostp2m table and then modified as requested. Signed-off-by: Sergej Proskurin

[Xen-devel] [PATCH 09/18] arm/altp2m: Add HVMOP_altp2m_switch_p2m.

2016-07-04 Thread Sergej Proskurin
Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/hvm.c| 2 +- xen/arch/arm/p2m.c| 32 xen/include/asm-arm/p2m.h | 3 +++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm

[Xen-devel] [PATCH 08/18] arm/altp2m: Add HVMOP_altp2m_destroy_p2m.

2016-07-04 Thread Sergej Proskurin
Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/hvm.c| 2 +- xen/arch/arm/p2m.c| 32 xen/include/asm-arm/p2m.h | 3 +++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm

[Xen-devel] [PATCH 01/18] arm/altp2m: Add cmd-line support for altp2m on ARM.

2016-07-04 Thread Sergej Proskurin
ommit, Xen is now able to activate altp2m support on ARM by means of the command-line argument 'altp2m' (bool). Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/hvm.c| 22 xen/include/asm-arm

[Xen-devel] [PATCH 08/18] arm/altp2m: Add HVMOP_altp2m_destroy_p2m.

2016-07-04 Thread Sergej Proskurin
Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/hvm.c| 2 +- xen/arch/arm/p2m.c| 32 xen/include/asm-arm/p2m.h | 3 +++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm

[Xen-devel] [PATCH 13/18] arm/altp2m: Make get_page_from_gva ready for altp2m.

2016-07-04 Thread Sergej Proskurin
his function. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/guestcopy.c | 6 +++--- xen/arch/arm/p2m.c | 19 +-- xen/arch/arm/traps.c | 2 +- xen/include/asm-arm/mm.h | 2 +- 4 files changed, 18 insertions(+), 11 delet

[Xen-devel] [PATCH 17/18] arm/altp2m: Adjust debug information to altp2m.

2016-07-04 Thread Sergej Proskurin
Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/p2m.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index 96892a5..de97a12 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c

[Xen-devel] [PATCH 03/18] arm/altp2m: Add HVMOP_altp2m_get_domain_state.

2016-07-04 Thread Sergej Proskurin
This commit adopts the x86 HVMOP_altp2m_get_domain_state implementation. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/hvm.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm/hvm.c b/xen/arch/arm/hvm.c index

[Xen-devel] [PATCH 02/18] arm/altp2m: Add first altp2m HVMOP stubs.

2016-07-04 Thread Sergej Proskurin
domain. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/hvm.c | 82 xen/include/asm-arm/altp2m.h | 22 ++-- xen/include/asm-arm/domain.h | 3 ++ 3 files changed, 105 insertions(+), 2

[Xen-devel] [PATCH 11/18] arm/altp2m: Make flush_tlb_domain ready for altp2m.

2016-07-04 Thread Sergej Proskurin
flushes the TLBs. This way, a change of one of the altp2m mapping is considered. At this point, it must be considered that the domain --whose TLBs are to be flushed-- is not locked. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/p2m.c | 71

[Xen-devel] [PATCH 15/18] arm/altp2m: Add altp2m paging mechanism.

2016-07-04 Thread Sergej Proskurin
event. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/p2m.c | 130 ++- xen/arch/arm/traps.c | 102 +++-- xen/include/asm-arm/altp2m.h | 4 +- xen/include/asm-arm/

[Xen-devel] [PATCH 18/18] arm/altp2m: Extend xen-access for altp2m on ARM.

2016-07-04 Thread Sergej Proskurin
Signed-off-by: Sergej Proskurin --- Cc: Razvan Cojocaru Cc: Tamas K Lengyel Cc: Ian Jackson Cc: Wei Liu --- tools/tests/xen-access/xen-access.c | 11 +-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/tests/xen-access/xen-access.c b/tools/tests/xen-access/xen

[Xen-devel] [PATCH 09/18] arm/altp2m: Add HVMOP_altp2m_switch_p2m.

2016-07-04 Thread Sergej Proskurin
Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/hvm.c| 2 +- xen/arch/arm/p2m.c| 32 xen/include/asm-arm/p2m.h | 3 +++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm

[Xen-devel] [PATCH 16/18] arm/altp2m: Extended libxl to activate altp2m on ARM.

2016-07-04 Thread Sergej Proskurin
ltp2m" switch in the domain's configuration file (i.e. set altp2m=1). Signed-off-by: Sergej Proskurin --- Cc: Ian Jackson Cc: Wei Liu --- tools/libxl/libxl_create.c | 1 + tools/libxl/libxl_dom.c | 14 ++ tools/libxl/libxl_types.idl | 1 + tools/libxl/xl_cmdimpl.c| 5

[Xen-devel] [PATCH 07/18] arm/altp2m: Add HVMOP_altp2m_create_p2m.

2016-07-04 Thread Sergej Proskurin
Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/hvm.c| 3 ++- xen/arch/arm/p2m.c| 23 +++ xen/include/asm-arm/p2m.h | 3 +++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm/hvm.c b

[Xen-devel] [PATCH 01/18] arm/altp2m: Add cmd-line support for altp2m on ARM.

2016-07-04 Thread Sergej Proskurin
ommit, Xen is now able to activate altp2m support on ARM by means of the command-line argument 'altp2m' (bool). Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/hvm.c| 22 xen/include/asm-arm

[Xen-devel] [PATCH 00/18] arm/altp2m: Introducing altp2m to ARM.

2016-07-04 Thread Sergej Proskurin
Hello together, Since this is my first contribution to the Xen development mailing list, I would like to shortly introduce myself. My name is Sergej Proskurin. I am a PhD Student at the Technical University of Munich. My research areas focus on Virtual Machine Introspection, Hypervisor/OS

[Xen-devel] [PATCH 03/18] arm/altp2m: Add HVMOP_altp2m_get_domain_state.

2016-07-04 Thread Sergej Proskurin
This commit adopts the x86 HVMOP_altp2m_get_domain_state implementation. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/hvm.c | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm/hvm.c b/xen/arch/arm/hvm.c index

[Xen-devel] [PATCH 02/18] arm/altp2m: Add first altp2m HVMOP stubs.

2016-07-04 Thread Sergej Proskurin
domain. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/hvm.c | 82 xen/include/asm-arm/altp2m.h | 22 ++-- xen/include/asm-arm/domain.h | 3 ++ 3 files changed, 105 insertions(+), 2

[Xen-devel] [PATCH 05/18] arm/altp2m: Add HVMOP_altp2m_set_domain_state.

2016-07-04 Thread Sergej Proskurin
The HVMOP_altp2m_set_domain_state allows to activate altp2m on a specific domain. This commit adopts the x86 HVMOP_altp2m_set_domain_state implementation. The function p2m_flush_altp2m is currently implemented in form of a stub. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc

[Xen-devel] [PATCH 15/18] arm/altp2m: Add altp2m paging mechanism.

2016-07-04 Thread Sergej Proskurin
event. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/p2m.c | 130 ++- xen/arch/arm/traps.c | 102 +++-- xen/include/asm-arm/altp2m.h | 4 +- xen/include/asm-arm/

[Xen-devel] [PATCH 04/18] arm/altp2m: Add altp2m init/teardown routines.

2016-07-04 Thread Sergej Proskurin
The p2m intialization now invokes intialization routines responsible for the allocation and intitialization of altp2m structures. The same applies to teardown routines. The functionality has been adopted from the x86 altp2m implementation. Signed-off-by: Sergej Proskurin --- Cc: Stefano

[Xen-devel] [PATCH 06/18] arm/altp2m: Add a(p2m) table flushing routines.

2016-07-04 Thread Sergej Proskurin
point in time. In addition, the implementation clears all altp2m entries during the process of flushing. The same applies to hostp2m entries, when it is destroyed. In this way, further domain and p2m allocations will not unintentionally reuse old p2m mappings. Signed-off-by: Sergej Proskurin

[Xen-devel] [PATCH 11/18] arm/altp2m: Make flush_tlb_domain ready for altp2m.

2016-07-04 Thread Sergej Proskurin
flushes the TLBs. This way, a change of one of the altp2m mapping is considered. At this point, it must be considered that the domain --whose TLBs are to be flushed-- is not locked. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/p2m.c | 71

[Xen-devel] [PATCH 04/18] arm/altp2m: Add altp2m init/teardown routines.

2016-07-04 Thread Sergej Proskurin
The p2m intialization now invokes intialization routines responsible for the allocation and intitialization of altp2m structures. The same applies to teardown routines. The functionality has been adopted from the x86 altp2m implementation. Signed-off-by: Sergej Proskurin --- Cc: Stefano

[Xen-devel] [PATCH 07/18] arm/altp2m: Add HVMOP_altp2m_create_p2m.

2016-07-04 Thread Sergej Proskurin
Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/hvm.c| 3 ++- xen/arch/arm/p2m.c| 23 +++ xen/include/asm-arm/p2m.h | 3 +++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm/hvm.c b

[Xen-devel] [PATCH 16/18] arm/altp2m: Extended libxl to activate altp2m on ARM.

2016-07-04 Thread Sergej Proskurin
ltp2m" switch in the domain's configuration file (i.e. set altp2m=1). Signed-off-by: Sergej Proskurin --- Cc: Ian Jackson Cc: Wei Liu --- tools/libxl/libxl_create.c | 1 + tools/libxl/libxl_dom.c | 14 ++ tools/libxl/libxl_types.idl | 1 + tools/libxl/xl_cmdimpl.c| 5

Re: [Xen-devel] [PATCH 06/18] arm/altp2m: Add a(p2m) table flushing routines.

2016-07-04 Thread Sergej Proskurin
re-inserted at a later point in time into the page table). On 07/04/2016 01:45 PM, Sergej Proskurin wrote: > The current implementation differentiates between flushing and > destroying altp2m views. This commit adds the functions > p2m_flush_altp2m, and p2m_flush_table, which allow to

Re: [Xen-devel] [PATCH 11/18] arm/altp2m: Make flush_tlb_domain ready for altp2m.

2016-07-04 Thread Sergej Proskurin
On 07/04/2016 01:45 PM, Sergej Proskurin wrote: > This commit makes sure that the TLB of a domain considers flushing all > of the associated altp2m views. Therefore, in case a different domain > (not the currently active domain) shall flush its TLBs, the current > implementation lo

Re: [Xen-devel] [PATCH 01/18] arm/altp2m: Add cmd-line support for altp2m on ARM.

2016-07-04 Thread Sergej Proskurin
On 07/04/2016 02:15 PM, Andrew Cooper wrote: > On 04/07/16 12:45, Sergej Proskurin wrote: >> The Xen altp2m subsystem is currently supported only on x86-64 based >> architectures. By utilizing ARM's virtualization extensions, we intend >> to implement altp2m support

Re: [Xen-devel] [PATCH 00/18] arm/altp2m: Introducing altp2m to ARM.

2016-07-04 Thread Sergej Proskurin
On 07/04/2016 02:52 PM, Andrew Cooper wrote: > On 04/07/16 12:45, Sergej Proskurin wrote: >> Hello together, >> >> Since this is my first contribution to the Xen development mailing list, I >> would like to shortly introduce myself. My name is Sergej Proskurin. I am

Re: [Xen-devel] [PATCH 01/18] arm/altp2m: Add cmd-line support for altp2m on ARM.

2016-07-04 Thread Sergej Proskurin
Hello Julien, On 07/04/2016 03:25 PM, Julien Grall wrote: > Hello Sergej, > > On 04/07/16 12:45, Sergej Proskurin wrote: >> The Xen altp2m subsystem is currently supported only on x86-64 based >> architectures. By utilizing ARM's virtualization extensions, we int

Re: [Xen-devel] [PATCH 02/18] arm/altp2m: Add first altp2m HVMOP stubs.

2016-07-04 Thread Sergej Proskurin
Hello Julien, On 07/04/2016 03:36 PM, Julien Grall wrote: > Hello Sergej, > > On 04/07/16 12:45, Sergej Proskurin wrote: >> This commit moves the altp2m-related code from x86 to ARM. > > Looking at the code in the follow-up patches, I have the impression that > the code

Re: [Xen-devel] [PATCH 04/18] arm/altp2m: Add altp2m init/teardown routines.

2016-07-04 Thread Sergej Proskurin
Hello Julien, On 07/04/2016 05:17 PM, Julien Grall wrote: > Hello Sergej, > > On 04/07/16 12:45, Sergej Proskurin wrote: >> The p2m intialization now invokes intialization routines responsible for > > s/intialization/initialization/ > >> the allocation and intiti

Re: [Xen-devel] [PATCH 04/18] arm/altp2m: Add altp2m init/teardown routines.

2016-07-04 Thread Sergej Proskurin
Hello Julien, On 07/04/2016 06:15 PM, Julien Grall wrote: > > > On 04/07/16 12:45, Sergej Proskurin wrote: >> +static void p2m_teardown_hostp2m(struct domain *d) >> +{ >> +struct p2m_domain *p2m = p2m_get_hostp2m(d); >> +struct page_info *pg = NULL; &g

Re: [Xen-devel] [PATCH 04/18] arm/altp2m: Add altp2m init/teardown routines.

2016-07-04 Thread Sergej Proskurin
Hi Andrew, On 07/04/2016 06:43 PM, Andrew Cooper wrote: > On 04/07/16 17:40, Sergej Proskurin wrote: >> >>>> { >>>> -struct p2m_domain *p2m = &d->arch.p2m; >>>> +int ret = 0; >>>> + >>>>

Re: [Xen-devel] [PATCH 01/18] arm/altp2m: Add cmd-line support for altp2m on ARM.

2016-07-04 Thread Sergej Proskurin
On 07/04/2016 07:56 PM, Tamas K Lengyel wrote: > On Mon, Jul 4, 2016 at 11:42 AM, Julien Grall wrote: >> >> >> On 04/07/16 12:45, Sergej Proskurin wrote: >>> >>> The Xen altp2m subsystem is currently supported only on x86-64 based >>> architectur

Re: [Xen-devel] [PATCH 04/18] arm/altp2m: Add altp2m init/teardown routines.

2016-07-04 Thread Sergej Proskurin
On 07/04/2016 07:44 PM, Julien Grall wrote: > > > On 04/07/16 17:56, Sergej Proskurin wrote: >> Hi Andrew, >> >> On 07/04/2016 06:43 PM, Andrew Cooper wrote: >>> On 04/07/16 17:40, Sergej Proskurin wrote: >>>> >>>>>>{ >

Re: [Xen-devel] [PATCH 04/18] arm/altp2m: Add altp2m init/teardown routines.

2016-07-04 Thread Sergej Proskurin
On 07/04/2016 08:18 PM, Julien Grall wrote: > > > On 04/07/16 17:43, Andrew Cooper wrote: >> On 04/07/16 17:40, Sergej Proskurin wrote: >>> >>>>>{ >>>>> -struct p2m_domain *p2m = &d->arch.p2m; >>

Re: [Xen-devel] [PATCH 04/18] arm/altp2m: Add altp2m init/teardown routines.

2016-07-04 Thread Sergej Proskurin
On 07/04/2016 11:19 PM, Sergej Proskurin wrote: > > On 07/04/2016 07:44 PM, Julien Grall wrote: >> >> >> On 04/07/16 17:56, Sergej Proskurin wrote: >>> Hi Andrew, >>> >>> On 07/04/2016 06:43 PM, Andrew Cooper wr

Re: [Xen-devel] [PATCH 04/18] arm/altp2m: Add altp2m init/teardown routines.

2016-07-04 Thread Sergej Proskurin
On 07/04/2016 08:30 PM, Julien Grall wrote: > > > On 04/07/16 17:40, Sergej Proskurin wrote: >> On 07/04/2016 05:17 PM, Julien Grall wrote: >>> On 04/07/16 12:45, Sergej Proskurin wrote: > > [...] > >>>> +static struct p2m_domain *p2m_init_o

Re: [Xen-devel] [PATCH 04/18] arm/altp2m: Add altp2m init/teardown routines.

2016-07-05 Thread Sergej Proskurin
Hi Julien, On 07/04/2016 08:34 PM, Julien Grall wrote: > On 04/07/16 17:51, Sergej Proskurin wrote: >> On 07/04/2016 06:15 PM, Julien Grall wrote: >>> >>> >>> On 04/07/16 12:45, Sergej Proskurin wrote: >>>> +static void p2m_teardown_hostp2m(struc

Re: [Xen-devel] [PATCH 05/18] arm/altp2m: Add HVMOP_altp2m_set_domain_state.

2016-07-05 Thread Sergej Proskurin
Hello Julien, On 07/04/2016 05:39 PM, Julien Grall wrote: > Hello Sergej, > > On 04/07/16 12:45, Sergej Proskurin wrote: >> diff --git a/xen/arch/arm/hvm.c b/xen/arch/arm/hvm.c >> index 8e8e0f7..cb90a55 100644 >> --- a/xen/arch/arm/hvm.c >> +++ b/xen/arch/arm/hvm

Re: [Xen-devel] [PATCH 06/18] arm/altp2m: Add a(p2m) table flushing routines.

2016-07-05 Thread Sergej Proskurin
Hi Julien, On 07/04/2016 05:42 PM, Julien Grall wrote: > Hello Sergej, > > On 04/07/16 13:12, Sergej Proskurin wrote: >>> +/* Reset this p2m table to be empty */ >>> +static void p2m_flush_table(struct p2m_domain *p2m) >>> +{ >>> +s

Re: [Xen-devel] [PATCH 06/18] arm/altp2m: Add a(p2m) table flushing routines.

2016-07-05 Thread Sergej Proskurin
Hello Julien, On 07/04/2016 05:55 PM, Julien Grall wrote: > Hello Sergej, > > On 04/07/16 12:45, Sergej Proskurin wrote: >> The current implementation differentiates between flushing and >> destroying altp2m views. This commit adds the functions >> p2m_flush_altp2m,

Re: [Xen-devel] [PATCH 06/18] arm/altp2m: Add a(p2m) table flushing routines.

2016-07-05 Thread Sergej Proskurin
Hi Julien, On 07/04/2016 06:20 PM, Julien Grall wrote: > On 04/07/16 12:45, Sergej Proskurin wrote: >> +void p2m_flush_altp2m(struct domain *d) >> +{ >> +unsigned int i; >> + >> +altp2m_lock(d); >> + >> +for ( i = 0; i < MAX_ALTP2

Re: [Xen-devel] [PATCH 08/18] arm/altp2m: Add HVMOP_altp2m_destroy_p2m.

2016-07-05 Thread Sergej Proskurin
Hi Julien, On 07/04/2016 06:32 PM, Julien Grall wrote: > Hello Sergej, > > On 04/07/16 12:45, Sergej Proskurin wrote: >> Signed-off-by: Sergej Proskurin >> --- >> Cc: Stefano Stabellini >> Cc: Julien Grall >> --- >> xen/arch/arm/hvm.c

Re: [Xen-devel] [PATCH 05/18] arm/altp2m: Add HVMOP_altp2m_set_domain_state.

2016-07-05 Thread Sergej Proskurin
Hi Julien, On 07/05/2016 12:11 PM, Julien Grall wrote: > Hello Sergej, > > On 05/07/16 09:45, Sergej Proskurin wrote: >>>> +struct p2m_domain *p2m_get_altp2m(struct vcpu *v) >>>> +{ >>>> +unsigned int index = vcpu_altp2m(v).p2midx;

Re: [Xen-devel] [PATCH 08/18] arm/altp2m: Add HVMOP_altp2m_destroy_p2m.

2016-07-05 Thread Sergej Proskurin
Hi Julien, On 07/05/2016 01:48 PM, Julien Grall wrote: > > > On 05/07/16 12:37, Sergej Proskurin wrote: >> On 07/04/2016 06:32 PM, Julien Grall wrote: >>> Hello Sergej, >>> >>> On 04/07/16 12:45, Sergej Proskurin wrote: >>>> Signed-off-by:

Re: [Xen-devel] [PATCH 10/18] arm/altp2m: Renamed and extended p2m_alloc_table.

2016-07-05 Thread Sergej Proskurin
Hello Julien, On 07/04/2016 08:43 PM, Julien Grall wrote: > Hello Sergej, > > On 04/07/16 12:45, Sergej Proskurin wrote: >> +int p2m_table_init(struct domain *d) >> +{ >> +int i = 0; >> +int rc = -ENOMEM; >> +struct p2m_domain *p2m = p2m_get_

Re: [Xen-devel] [PATCH 11/18] arm/altp2m: Make flush_tlb_domain ready for altp2m.

2016-07-05 Thread Sergej Proskurin
Hi Julien, On 07/04/2016 10:32 PM, Julien Grall wrote: > Hello Sergej, > > On 04/07/2016 12:45, Sergej Proskurin wrote: >> This commit makes sure that the TLB of a domain considers flushing all >> of the associated altp2m views. Therefore, in case a different domain >>

Re: [Xen-devel] [PATCH 11/18] arm/altp2m: Make flush_tlb_domain ready for altp2m.

2016-07-05 Thread Sergej Proskurin
Hi Julien, On 07/05/2016 05:37 PM, Julien Grall wrote: > > > On 05/07/16 15:48, Sergej Proskurin wrote: >> On 07/04/2016 10:32 PM, Julien Grall wrote: >>> On 04/07/2016 12:45, Sergej Proskurin wrote: >>>> +p2m_load_altp2m_VTTBR(n); >>>>

Re: [Xen-devel] [PATCH 13/18] arm/altp2m: Make get_page_from_gva ready for altp2m.

2016-07-05 Thread Sergej Proskurin
Hi Julien, On 07/04/2016 10:34 PM, Julien Grall wrote: > Hello Sergej, > > On 04/07/2016 12:45, Sergej Proskurin wrote: >> diff --git a/xen/arch/arm/guestcopy.c b/xen/arch/arm/guestcopy.c >> index ce1c3c3..413125f 100644 >> --- a/xen/arch/arm/guestcopy.c >&g

Re: [Xen-devel] [PATCH 14/18] arm/altp2m: Add HVMOP_altp2m_set_mem_access.

2016-07-05 Thread Sergej Proskurin
Hello Julien, On 07/05/2016 02:49 PM, Julien Grall wrote: > Hello Sergej, > > On 04/07/16 12:45, Sergej Proskurin wrote: >> +static inline >> +int p2m_set_altp2m_mem_access(struct domain *d, struct p2m_domain *hp2m, >> + struct p2m_d

Re: [Xen-devel] [PATCH 15/18] arm/altp2m: Add altp2m paging mechanism.

2016-07-06 Thread Sergej Proskurin
Hi Julien, On 07/04/2016 10:53 PM, Julien Grall wrote: > (CC Tamas) > > Hello Sergej, > > On 04/07/2016 12:45, Sergej Proskurin wrote: >> This commit adds the function p2m_altp2m_lazy_copy implementing the >> altp2m paging mechanism. The function p2m_altp2m_laz

Re: [Xen-devel] [PATCH 17/18] arm/altp2m: Adjust debug information to altp2m.

2016-07-06 Thread Sergej Proskurin
Hi Julien, On 07/04/2016 10:58 PM, Julien Grall wrote: > Hello Sergej, > > On 04/07/2016 12:45, Sergej Proskurin wrote: >> Signed-off-by: Sergej Proskurin >> --- >> Cc: Stefano Stabellini >> Cc: Julien Grall >> --- >> xen/arch/arm/p2m.c | 6

Re: [Xen-devel] [PATCH 18/18] arm/altp2m: Extend xen-access for altp2m on ARM.

2016-07-06 Thread Sergej Proskurin
Hi Razvan, On 07/04/2016 03:38 PM, Razvan Cojocaru wrote: > On 07/04/16 14:45, Sergej Proskurin wrote: >> Signed-off-by: Sergej Proskurin >> --- >> Cc: Razvan Cojocaru >> Cc: Tamas K Lengyel >> Cc: Ian Jackson >> Cc: Wei Liu >> ---

Re: [Xen-devel] [PATCH 02/18] arm/altp2m: Add first altp2m HVMOP stubs.

2016-07-06 Thread Sergej Proskurin
Hi Julien, On 07/05/2016 12:19 PM, Julien Grall wrote: > Hello Sergej, > > On 04/07/16 12:45, Sergej Proskurin wrote: >> +static int do_altp2m_op(XEN_GUEST_HANDLE_PARAM(void) arg) >> +{ >> +struct xen_hvm_altp2m_op a; >> +struct domain *d = NULL; &g

Re: [Xen-devel] [PATCH 11/18] arm/altp2m: Make flush_tlb_domain ready for altp2m.

2016-07-06 Thread Sergej Proskurin
Hi Julien, On 07/06/2016 04:28 PM, Julien Grall wrote: > > > On 05/07/16 21:21, Sergej Proskurin wrote: >> I agree on this point as well. However, we should maybe think of another >> name for flush_tlb_domain. Especially, if we do not flush the entire >> domain (inc

Re: [Xen-devel] [PATCH 14/18] arm/altp2m: Add HVMOP_altp2m_set_mem_access.

2016-07-06 Thread Sergej Proskurin
On 07/06/2016 06:12 PM, Tamas K Lengyel wrote: > On Wed, Jul 6, 2016 at 8:32 AM, Julien Grall wrote: >> >> On 05/07/16 22:55, Sergej Proskurin wrote: >>> Hello Julien, >>> >>> On 07/05/2016 02:49 PM, Julien Grall wrote: >>>> Hello Serge

Re: [Xen-devel] [PATCH 02/18] arm/altp2m: Add first altp2m HVMOP stubs.

2016-07-07 Thread Sergej Proskurin
Hi Julien, On 07/06/2016 08:35 PM, Julien Grall wrote: > > > On 06/07/16 17:35, Tamas K Lengyel wrote: >> On Wed, Jul 6, 2016 at 10:29 AM, Julien Grall >> wrote: >>> >>> >>> On 06/07/16 17:05, Tamas K Lengyel wrote: On Wed, Jul 6, 2016 at 9:54 AM, Julien Grall wrote: > >

Re: [Xen-devel] [PATCH 14/18] arm/altp2m: Add HVMOP_altp2m_set_mem_access.

2016-07-07 Thread Sergej Proskurin
Hi Julien, On 07/06/2016 07:08 PM, Julien Grall wrote: > Hi, > > On 04/07/16 12:45, Sergej Proskurin wrote: >> --- a/xen/arch/arm/p2m.c >> +++ b/xen/arch/arm/p2m.c >> @@ -2085,6 +2085,159 @@ bool_t p2m_mem_access_check(paddr_t gpa, >> vaddr_t gla, const struct np

Re: [Xen-devel] [PATCH 12/18] arm/altp2m: Cosmetic fixes - function prototypes.

2016-07-16 Thread Sergej Proskurin
Hi Julien, On 07/15/2016 03:45 PM, Julien Grall wrote: > Hi Sergej, > > On 04/07/16 12:45, Sergej Proskurin wrote: >> This commit changes the prototype of the following functions: >> - apply_p2m_changes >> - apply_one_level >> - p2m_shatter_page >&g

Re: [Xen-devel] [PATCH 17/22] xen/arm: p2m: Don't need to restore the state for an idle vCPU.

2016-07-22 Thread Sergej Proskurin
On 07/20/2016 06:10 PM, Julien Grall wrote: > The function p2m_restore_state could be called with an idle vCPU in > arguments (when called by construct_dom0). However, we will never return > to EL0/EL1 in this case, so it is not necessary to restore the p2m > registers. > I absolutely agree. C

Re: [Xen-devel] [PATCH 16/22] xen/arm: p2m: Move the vttbr field from arch_domain to p2m_domain

2016-07-22 Thread Sergej Proskurin
Hi Julien, On 07/20/2016 06:10 PM, Julien Grall wrote: > The field vttbr holds the base address of the translation table for > guest. Its value will depends on how the p2m has been initialized and > will only be used by the code code. > > So move the field from arch_domain to p2m_domain. This wil

Re: [Xen-devel] [PATCH 18/22] xen/arm: p2m: Rework the context switch to another VTTBR in flush_tlb_domain

2016-07-22 Thread Sergej Proskurin
Hi Julien, On 07/20/2016 06:11 PM, Julien Grall wrote: > The current implementation of flush_tlb_domain is relying on the domain > to have a single p2m. With the upcoming feature altp2m, a single domain > may have different p2m. So we would need to switch to the correct p2m in > order to flush the

Re: [Xen-devel] [PATCH 19/22] xen/arm: p2m: Inline p2m_load_VTTBR into p2m_restore_state

2016-07-22 Thread Sergej Proskurin
Hi Julien, On 07/20/2016 06:11 PM, Julien Grall wrote: > p2m_restore_state is the last caller of p2m_load_VTTBR and already check > if the vCPU does not belong to the idle domain. > > Note that it is likely possible to remove some isb in the function > p2m_restore_state, however this is not the p

Re: [Xen-devel] [PATCH 15/22] xen/arm: Don't call p2m_alloc_table from arch_domain_create

2016-07-22 Thread Sergej Proskurin
Hi Julien, > -int p2m_alloc_table(struct domain *d) > +static int p2m_alloc_table(struct domain *d) While moving parts of the altp2m code out of ./xen/arch/arm/p2m.c, the function p2m_alloc_table needs to be called from ./xen/arch/arm/altp2m.c to allocate the individual altp2m views. Hence it sh

Re: [Xen-devel] [PATCH 20/22] xen/arm: Don't export flush_tlb_domain

2016-07-22 Thread Sergej Proskurin
Hi Julien, On 07/20/2016 06:11 PM, Julien Grall wrote: > The function flush_tlb_domain is not used outside of the file where it > has been declared. > As for patch #15, the same applies here too: For altp2m, flush_tlb_domain/p2m_flush_tlb should be made available to ./xen/arch/arm/altp2m.c. Che

Re: [Xen-devel] [PATCH 15/22] xen/arm: Don't call p2m_alloc_table from arch_domain_create

2016-07-22 Thread Sergej Proskurin
Hi Julien, On 07/22/2016 11:18 AM, Julien Grall wrote: > > > On 22/07/16 09:32, Sergej Proskurin wrote: >> Hi Julien, > > Hello Sergej, > >>> -int p2m_alloc_table(struct domain *d) >>> +static int p2m_alloc_table(struct domain *d) >> >> W

Re: [Xen-devel] [PATCH 20/22] xen/arm: Don't export flush_tlb_domain

2016-07-22 Thread Sergej Proskurin
Hi Julien, On 07/22/2016 11:30 AM, Julien Grall wrote: > > > On 22/07/16 09:54, Sergej Proskurin wrote: >> Hi Julien, > > Hello Sergej, > >> On 07/20/2016 06:11 PM, Julien Grall wrote: >>> The function flush_tlb_domain is not used outside of

Re: [Xen-devel] [PATCH 15/22] xen/arm: Don't call p2m_alloc_table from arch_domain_create

2016-07-22 Thread Sergej Proskurin
On 07/22/2016 12:26 PM, Julien Grall wrote: > > > On 22/07/16 11:16, Sergej Proskurin wrote: >> Hi Julien, > > Hello, > >> On 07/22/2016 11:18 AM, Julien Grall wrote: >>> >>> >>> On 22/07/16 09:32, Sergej Proskurin wrote: >>>

Re: [Xen-devel] [PATCH 20/22] xen/arm: Don't export flush_tlb_domain

2016-07-22 Thread Sergej Proskurin
On 07/22/2016 12:34 PM, Julien Grall wrote: > > > On 22/07/16 11:25, Sergej Proskurin wrote: >> Hi Julien, >> >> On 07/22/2016 11:30 AM, Julien Grall wrote: >>> >>> >>> On 22/07/16 09:54, Sergej Proskurin wrote: >>>> Hi Jul

Re: [Xen-devel] [PATCH 15/22] xen/arm: Don't call p2m_alloc_table from arch_domain_create

2016-07-22 Thread Sergej Proskurin
On 07/22/2016 12:38 PM, Julien Grall wrote: > > > On 22/07/16 11:39, Sergej Proskurin wrote: >> >> >> On 07/22/2016 12:26 PM, Julien Grall wrote: >>> >>> >>> On 22/07/16 11:16, Sergej Proskurin wrote: >>>> Hi Julien,

Re: [Xen-devel] [PATCH 20/22] xen/arm: Don't export flush_tlb_domain

2016-07-22 Thread Sergej Proskurin
On 07/22/2016 12:57 PM, Julien Grall wrote: > > > On 22/07/16 11:46, Sergej Proskurin wrote: >> >> >> On 07/22/2016 12:34 PM, Julien Grall wrote: >>> >>> >>> On 22/07/16 11:25, Sergej Proskurin wrote: >>>> Hi Julien, >>>

Re: [Xen-devel] [PATCH 15/22] xen/arm: Don't call p2m_alloc_table from arch_domain_create

2016-07-23 Thread Sergej Proskurin
Hi Julien, > > This patch moved p2m_alloc_table call into p2m_init (i.e your > p2m_init_one). You complained that the function was not exported > anymore, but you did not look how it was called in this patch. > Ok. At this point our patches indeed derailed too much from each other. We should co

Re: [Xen-devel] [PATCH 16/18] arm/altp2m: Extended libxl to activate altp2m on ARM.

2016-07-24 Thread Sergej Proskurin
Hi Wei, On 07/07/2016 06:27 PM, Wei Liu wrote: > On Mon, Jul 04, 2016 at 01:45:45PM +0200, Sergej Proskurin wrote: >> The current implementation allows to set the parameter HVM_PARAM_ALTP2M. >> This parameter allows further usage of altp2m on ARM. For this, we >> define an ad

Re: [Xen-devel] [PATCH 16/18] arm/altp2m: Extended libxl to activate altp2m on ARM.

2016-07-25 Thread Sergej Proskurin
Hi Wei, On 07/25/2016 10:32 AM, Wei Liu wrote: > On Sun, Jul 24, 2016 at 06:06:00PM +0200, Sergej Proskurin wrote: >> Hi Wei, >> >> On 07/07/2016 06:27 PM, Wei Liu wrote: >>> On Mon, Jul 04, 2016 at 01:45:45PM +0200, Sergej Proskurin wrote: >>>> Th

Re: [Xen-devel] [PATCH 16/18] arm/altp2m: Extended libxl to activate altp2m on ARM.

2016-07-25 Thread Sergej Proskurin
On 07/25/2016 12:08 PM, Wei Liu wrote: > On Mon, Jul 25, 2016 at 10:49:41AM +0100, Julien Grall wrote: >> Hello, >> >> On 25/07/16 10:04, Sergej Proskurin wrote: >>> On 07/25/2016 10:32 AM, Wei Liu wrote: >>>> On Sun, Jul 24, 2016 a

Re: [Xen-devel] [PATCH v2 5/6] xen/arm: traps: Avoid unnecessary VA -> IPA translation in abort handlers

2016-07-27 Thread Sergej Proskurin
Hi Julien, On 07/27/2016 07:09 PM, Julien Grall wrote: > Translating a VA to a IPA is expensive. Currently, Xen is assuming that > HPFAR_EL2 is only valid when the stage-2 data/instruction abort happened > during a translation table walk of a first stage translation (i.e S1PTW > is set). > > Howe

[Xen-devel] [PATCH v2 10/25] arm/altp2m: Add HVMOP_altp2m_create_p2m.

2016-08-01 Thread Sergej Proskurin
Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- v2: Cosmetic fixes. --- xen/arch/arm/altp2m.c| 23 +++ xen/arch/arm/hvm.c | 3 ++- xen/include/asm-arm/altp2m.h | 4 3 files changed, 29 insertions(+), 1 deletion

[Xen-devel] [PATCH v2 08/25] arm/altp2m: Add HVMOP_altp2m_set_domain_state.

2016-08-01 Thread Sergej Proskurin
The HVMOP_altp2m_set_domain_state allows to activate altp2m on a specific domain. This commit adopts the x86 HVMOP_altp2m_set_domain_state implementation. Note that the function altp2m_flush is currently implemented in form of a stub. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini

[Xen-devel] [PATCH v2 21/25] arm/altp2m: Add HVMOP_altp2m_change_gfn.

2016-08-01 Thread Sergej Proskurin
This commit adds the functionality to change mfn mappings for specified gfn's in altp2m views. This mechanism can be used within the context of VMI, e.g., to establish stealthy debugging. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/alt

[Xen-devel] [PATCH v2 07/25] arm/altp2m: Add altp2m init/teardown routines.

2016-08-01 Thread Sergej Proskurin
The p2m initialization now invokes initialization routines responsible for the allocation and initialization of altp2m structures. The same applies to teardown routines. The functionality has been adopted from the x86 altp2m implementation. Signed-off-by: Sergej Proskurin --- Cc: Stefano

[Xen-devel] [PATCH v2 02/25] arm/altp2m: Add HVMOP_altp2m_get_domain_state.

2016-08-01 Thread Sergej Proskurin
This commit adopts the x86 HVMOP_altp2m_get_domain_state implementation. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/hvm.c | 9 - xen/include/asm-arm/altp2m.h | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff

[Xen-devel] [PATCH v2 00/25] arm/altp2m: Introducing altp2m to ARM.

2016-08-01 Thread Sergej Proskurin
custom XSM policy is necessary on both x86 and ARM. The current code-base is based on Julien Grall's branch abort-handlers-v2[2]. [0] https://github.com/sergej-proskurin/xen (branch arm-altp2m-v2) [1] https://summerofcode.withgoogle.com/projects/#4970052843470848 [2] git://xenbits.xen.org/people

[Xen-devel] [PATCH v2 04/25] arm/altp2m: Move hostp2m init/teardown to individual functions.

2016-08-01 Thread Sergej Proskurin
This commit pulls out generic init/teardown functionality out of p2m_init and p2m_teardown into p2m_init_one, p2m_free_one, and p2m_flush_table functions. This allows our future implementation to reuse existing code for the initialization/teardown of altp2m views. Signed-off-by: Sergej Proskurin

[Xen-devel] [PATCH v2 13/25] arm/altp2m: Make p2m_restore_state ready for altp2m.

2016-08-01 Thread Sergej Proskurin
This commit adapts the function "p2m_restore_state" in a way that the currently active altp2m table is considered during state restoration. Signed-off-by: Sergej Proskurin --- Cc: Stefano Stabellini Cc: Julien Grall --- xen/arch/arm/p2m.c | 4 +++- xen/include/asm-arm/al

[Xen-devel] [PATCH v2 23/25] arm/altp2m: Extend libxl to activate altp2m on ARM.

2016-08-01 Thread Sergej Proskurin
ot; switch in the domain's configuration file (i.e. set altp2m=1). Note, that the old parameter "altp2mhvm" is still valid for x86. Since this commit defines this old parameter as deprecated, libxl will generate a warning during processing. Signed-off-by: Sergej Proskurin --- Cc:

[Xen-devel] [PATCH v2 05/25] arm/altp2m: Rename and extend p2m_alloc_table.

2016-08-01 Thread Sergej Proskurin
nd altp2m tables are allocated similarly. Since this function will be used by the altp2m initialization routines, it is not made static. In addition, this commit provides the overlay function "p2m_table_init" that is used for the host's p2m allocation/initialization. Signed-off-by: Sergej Pr

<    1   2   3   4   5   >