Only when working against the hypervisor page table in page_map_create
and page_map_destroy, we actually need to flush TLBs. Other page tables
require arch-specific flushings that we perform on arch_config_commit.
This measurably speeds up Jailhouse activation, e.g., when a significant
number of EPT and VT-d page table changes are performed.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
}
paging++;
}
- arch_tlb_flush_page(virt);
+ if (pg_structs == &hv_paging_structs)
+ arch_tlb_flush_page(virt);
phys += paging->page_size;
virt += paging->page_size;
paging--;
pte = paging->get_entry(pt[--n], virt);
}
- arch_tlb_flush_page(virt);
+ if (pg_structs == &hv_paging_structs)
+ arch_tlb_flush_page(virt);
if (page_size > size)
break;