s390/mm: tag normal pages vs pages used in page tables
The ESSA instruction has a new option that allows to tag pages that are not used as a page table. Without the tag the hypervisor has to assume that any guest page could be used in a page table inside the guest. This forces the hypervisor to flush all guest TLB entries whenever a host page table entry is invalidated. With the tag the host can skip the TLB flush if the page is tagged as normal page. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
@@ -57,6 +57,7 @@ unsigned long *crst_table_alloc(struct mm_struct *mm)
|
||||
|
||||
if (!page)
|
||||
return NULL;
|
||||
arch_set_page_dat(page, 2);
|
||||
return (unsigned long *) page_to_phys(page);
|
||||
}
|
||||
|
||||
@@ -214,6 +215,7 @@ unsigned long *page_table_alloc(struct mm_struct *mm)
|
||||
__free_page(page);
|
||||
return NULL;
|
||||
}
|
||||
arch_set_page_dat(page, 0);
|
||||
/* Initialize page table */
|
||||
table = (unsigned long *) page_to_phys(page);
|
||||
if (mm_alloc_pgste(mm)) {
|
||||
|
Reference in New Issue
Block a user