1. A method of caching translations of virtual addresses (VA) to system physical addresses (SPA) from multiple address spaces in a virtual machine, the method comprising: write-protecting a guest page table containing at least one address translation for a first guest address space before caching the at least one address translation in a shadow page table, wherein a subsequent write to the guest page table is intercepted; intercepting a write to the guest page table; creating a guest-writable mapping to the guest page table after intercepting at least one write to the guest page table; wherein a subsequent write to the guest page table is not intercepted and wherein the guest-writable mapping is a writable translation in a shadow page table from a virtual address to the system physical address of the guest page table; marking a cached address translation associated with the guest page table affected by the intercepted guest-writable mapping, wherein the marking indicates a stale cached address translation; and purging the marked address translations upon one of a switch to a second guest address space and a flush of translations, wherein non-stale address translations remain cached and stale address translations are removed.