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_ALTP2M; i++ ) >> +{ >> +p2m_flush_table(d->arch.

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, and p2m_flush_table, which allo

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) >>> +{ >>> +struct page_info *top, *pg; >>> +mfn_t mfn; >>> +unsig

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

2016-07-04 Thread Julien Grall
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_ALTP2M; i++ ) +{ +p2m_flush_table(d->arch.altp2m_p2m[i]); +flush_tlb(); I forgot to comment on this line. Can you e

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

2016-07-04 Thread Julien Grall
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, and p2m_flush_table, which allow to flush all or individual altp2m views without destroying the entire

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

2016-07-04 Thread Julien Grall
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) +{ +struct page_info *top, *pg; +mfn_t mfn; +unsigned int i; + +/* Check whether the p2m table has already been flushed before. */

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

2016-07-04 Thread Sergej Proskurin
ARM allows the use of concatenated root (first-level) page tables (there are P2M_ROOT_PAGES consecutive pages that are used for the root level page table. We need to prevent freeing one of these concatenated pages during the process of flushing in p2m_flush_table (simply because new pages might be