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.
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
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
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
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
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. */
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