Concurrent virtual storage management
AssigneeInternational Business Machines Corporation
InventorsCharles E. Mari, Harris M. Morgenstern, Thomas F. Rankin, Peter J. Relson, Elpida Tzortzatos
Life of this patent
Estimating the term…
Abstract
A memory system is configured for access by a plurality of computer processing units. An address lock bit is configured in a translation table of the memory system. The address lock supports both address lock shared and address lock exclusive functions. A storage manager of an operating system configured to obtain exclusive access to an entry in a DAT table either by obtaining an address space lock exclusive or obtaining an address space lock shared, and setting a lock bit in a DAT entry.
Claims10
A system, comprising:
- a memory system configured for access by a plurality of computer processing units;
- a lock bit configured in a dynamic address translation (DAT) table of the memory system, the lock bit supporting a first function comprising obtaining an address lock shared on a DAT structure represented in the DAT table and a second function comprising obtaining an address lock exclusive on the DAT structure, wherein the memory system is organized according to a multi-level hierarchy, and wherein a region table corresponds to a higher level in the multi-level hierarchy than a segment table and the segment table corresponds to a higher level in the multi-level hierarchy than a page table;
- and
- a storage manager of an operating system, the storage manager configured to:
- determine that the DAT structure is a particular segment table in the memory system,
- determine that the particular segment table is the lowest valid level in the DAT table mapping a virtual address based at least in part on determining that the particular segment table does not point to a page table,
- initiate the address lock shared on the particular segment table at least in part by serializing, via a serialization instruction issued by a storage management function, the lowest valid level in the DAT table mapping the virtual address by attempting to set the lock bit, wherein a segment table entry in the DAT table comprises the lock bit, the segment table entry corresponding to the particular segment table,
- determine that setting the lock bit failed,
- determine that the particular segment table is already locked based at least in part on determining that setting the lock bit failed,
- drop the address space lock shared on the particular segment table, and
- obtain the address space lock exclusive on the particular segment table prior to performing a corresponding task by a computer processing unit.
A method, comprising:
- configuring a lock bit in a dynamic address translation (DAT) table of a memory system to support a first function comprising obtaining an address lock shared on a DAT structure represented in the DAT table and a second function comprising obtaining an address lock exclusive on the DAT structure, wherein the memory system is configured for access by a plurality of computer processing units, and wherein the memory system is organized according to a multi-level hierarchy, and wherein a region table corresponds to a higher level in the multi-level hierarchy than a segment table and the segment table corresponds to a higher level in the multi-level hierarchy than a page table, and
- by a storage manager of an operating system executing on the memory system:
- determining that the DAT structure is a particular segment table in the memory system,
- determining, by the storage manager, that the particular segment table is the lowest valid level in the DAT table mapping a virtual address based at least in part on determining that the particular segment table does not point to a page table,
- initiating, by the storage manager the address space lock shared on the particular segment table at least in part by serializing, via a serialization instruction issued by a storage management function, the lowest valid level in the DAT table mapping the virtual address by attempting to set the lock bit, wherein a segment table entry in the DAT table comprises the lock bit, the segment table entry corresponding to the particular segment table,
- determining that setting the lock bit failed,
- determining that the particular segment table is already locked based at least in part on determining that setting the lock bit failed,
- dropping the address space lock shared on the particular segment table, and
- obtaining the address space lock exclusive on the particular segment table prior to performing a corresponding task by a computer processing unit.
A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform:
- configuring a lock bit in a dynamic address translation (DAT) table of a memory system to support a first function comprising obtaining an address lock shared on a DAT structure represented in the DAT table and a second function comprising obtaining an address lock exclusive on the DAT structure, wherein the memory system is configured for access by a plurality of computer processing units, and wherein the memory system is organized according to a multi-level hierarchy, and wherein a region table corresponds to a higher level in the multi-level hierarchy than a segment table and the segment table corresponds to a higher level in the multi-level hierarchy than a page table, and
- by a storage manager of an operating system executing on the memory system:
- determining that the DAT structure is a particular segment table in the memory system,
- determining, by the storage manager, that the particular segment table is the lowest valid level in the DAT table mapping a virtual address based at least in part on determining that the particular segment table does not point to a page table,
- initiating, by the storage manager the address space lock shared on the particular segment table at least in part by serializing, via a serialization instruction issued by a storage management function, the lowest valid level in the DAT table mapping the virtual address by attempting to set the lock bit, wherein a segment table entry in the DAT table comprises the lock bit, the segment table entry corresponding to the particular segment table,
- determining that setting the lock bit failed,
- determining that the particular segment table is already locked based at least in part on determining that setting the lock bit failed,
- dropping the address space lock shared on the particular segment table, and
- obtaining the address space lock exclusive on the particular segment table prior to performing a corresponding task by a computer processing unit.
Dependencies are inferred from the claim text.