On Mon, Jun 02, 2014 at 07:45:35PM +0300, Gleb Natapov wrote: > On Fri, May 30, 2014 at 09:24:24AM -0700, Andi Kleen wrote: > > > > To avoid any problems with guest pages being swapped by the host we > > > > pin the pages when the PEBS buffer is setup, by intercepting > > > > that MSR. > > > It will avoid guest page to be swapped, but shadow paging code may still drop > > > shadow PT pages that build a mapping from DS virtual address to the guest page. > > > > You're saying the EPT code could tear down the EPT mappings? > > Under memory pressure yes. mmu_shrink_scan() calls > prepare_zap_oldest_mmu_page() which destroys oldest mmu pages like its > name says. As far as I can tell running nested guest can also result in > EPT mapping to be dropped since it will create a lot of shadow pages and > this will cause make_mmu_pages_available() to destroy some shadow pages > and it may choose EPT pages to destroy. > > CCing Marcelo to confirm/correct. Yes. Given SLAB pressure any shadow pages can be deleted except pinned via root_count=1 ones. > > OK that would need to be prevented too. Any suggestions how? > Only high level. Mark shadow pages involved in translation we want to keep and skip them in > prepare_zap_oldest_mmu_page(). Should special case such translations so that they are not zapped (either via page deletion or single entry EPT deletion). Them and any other their parents, bummer. Maybe its cleaner to check that DS area is EPT mapped before VM-entry. No way the processor can generate VM-exits ? Is it not an option to fake a DS-save area in the host (and trap any accesses to the DS_AREA MSR from the guest) ? Then before notifying the PEBS event, copy from that host area to guests address. Slow probably. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html