Patent ID: 7783838

Claim:
A virtual computer system, the virtual computer system comprising: physical hardware and virtualization software for supporting a virtual machine, the virtual machine running a guest operating system (OS), the guest OS generating address translations from virtual addresses to guest physical addresses for a primary data store, the virtualization software generating address translations from virtual addresses to hardware physical addresses for a first derived data store and for a second derived data store, the primary data store containing a first primary entry providing an address translation for a first virtual address and the first derived data store containing a first derived entry that was derived from the first primary entry, the first derived entry also providing an address translation for the first virtual address, the primary data store also containing a second primary entry providing an address translation for a second virtual address and the second derived data store containing a second derived entry that was derived from the second primary entry, the second derived entry also providing an address translation for the second virtual address; a producer associated with the primary data store; and a first consumer associated with the first derived data store and a second consumer associated with the second derived data store, wherein the producer responds to a first modification to the first primary entry, the first modification causing a first incoherency between the first primary entry and the first derived entry, the producer writing a first information indicating that a change has been made to a translation in the primary data store for the first virtual address, wherein the producer responds to a second modification to the second primary entry, the second modification causing a second incoherency between the second primary entry and the second derived entry, the producer writing a second information indicating that a change has been made to a translation in the primary data store for the second virtual address, wherein the first consumer reads the first information and, on occurrence of a first coherency event at which the first derived data store is not to be incoherent with the primary data store with respect to the first virtual address, the first consumer eliminates the first incoherency, and wherein the second consumer reads the second information and, on occurrence of a second coherency event at which the second derived data store is not to be incoherent with the primary data store with respect to the second virtual address, the second consumer eliminates the second incoherency.