Patent ID: 9274974
Filing Date: 2016-03-01
CPC Classification: G06F

Claim Text:
1. A computer system comprising: system hardware, the system hardware including a system memory containing a plurality of memory locations; virtualization software supporting a virtual machine (VM), the virtualization software making a portion of the system memory available for access as guest physical memory within the VM, the guest physical memory of the VM being located by guest physical addresses; and guest software executing within the VM, the guest software including a guest operating system, a first software entity and a second software entity, wherein: the first software entity and the second software entity use guest virtual addresses to access the guest physical memory, and the guest operating system provides first guest address mappings to map the guest virtual addresses used by the first software entity, including a first guest virtual address, to the guest physical addresses and second guest address mappings to map the guest virtual addresses used by the second software entity, including a second guest virtual address, to the guest physical addresses, the first guest virtual address and the second guest virtual address being mapped in common to a first guest physical address; the virtualization software activates hardware address mappings that are used to map attempted memory accesses to actual physical addresses in the system memory, the attempted memory accesses resulting from the execution of the guest software and being directed to guest physical addresses within the VM according to the first and second guest address mappings provided by the guest operating system; the virtualization software activates a first set of hardware address mappings when the first software entity executes within the VM; the virtualization software activates a second set of hardware address mappings when the second software entity executes within the VM; and the first set of hardware address mappings map attempted memory accesses directed to the first guest physical address to a first actual physical address, while the second set of hardware address mappings map attempted memory accesses directed to the first guest physical address to a second actual physical address, where the second actual physical address is different from the first actual physical address, so that attempted memory accesses directed to the first guest physical address are mapped to the first actual physical address when the first software entity is executing and to the second actual physical address when the second software entity is executing.