Abstract:
A nestable reader-writer lock minimizes writer and reader overhead by employing lock structures that are shared among groups of processors (24) that have lower latencies. In the illustrated multiprocessor system having a non-uniform memory access (NUMA) architecture, in a first embodiment each processor node has a lock structure (83) comprised of a shared counter (84) and associated flag (85) for each CPU group. During a read, the counter can be changed only by processors within a CPU group performing a read. This reduces the reader overhead that otherwise would exist if all processors in the system sharEd a single counter. During a write, the shared flag can be changed by a process running on any processor in the system. The processors in a CPU group are notified of the write through the shared flag. This reduces the writer overhead that otherwise would exist if each processor in the system had a separate flag. The number of CPUs per group can be varied to optimize performance of the lock in different multiprocessor systems. In a second embodiment a global counter (91) indicates the number of active reader threads that are not accounted for in the per-CPU-group counters (94). This permits a reader thread to read-release a lock without determining which processor that thread was running on when it last read-acquired that lock.
Abstract:
A method and computer system for efficiently handling high contention locking in a multiprocessor computer system. The method organizes at least some of the processors in the system into a hierarchy (910, 920), and processes an interruptible lock in response to the hierarchy. The method utilizes two alternative methods of acquiring the lock, including a conditional lock acquisition primitive (800) and an unconditional lock acquisition primitive (600), and an unconditional lock release primitive for releasing the lock from a particular processor. In order to prevent races between processors requesting a lock acquisition and a processor releasing the lock, a release flag is utilized. Furthermore, in order to ensure that the a processor utilizing the unconditional lock acquisition primitive is granted the lock, a handoff flag is utilized. Accordingly, efficiency of a computer system may be enhanced with the ability to utilize a locking primitive for an interruptible lock that determines lock selection among processors based upon a hierarchical position of the processor and the primitive utilized for lock selection.
Abstract:
PROBLEM TO BE SOLVED: To provide a technique for optimizing grace period detection following a shared data update operation that affects preemptible data readers. SOLUTION: A determination is made whether a data processing system is a uniprocessor system or a multiprocessor system. If the data processing system is the uniprocessor system, the grace period detection processing is performed using a first grace period detection technique. On the other hand, if the data processing system is the multiprocessor system, grace period detection processing is performed using a second grace period detection technique. The grace period detection processing determines the end of a grace period in which readers that are subject to preemption have passed through a quiescent state and cannot be maintaining references to the pre-update view of the shared data. COPYRIGHT: (C)2010,JPO&INPIT
Abstract:
PROBLEM TO BE SOLVED: To handle high contention locking in a multiprocessor computer system. SOLUTION: The method organizes at least some of all the processors into a hierarchy and processes an interruptible lock in response to the hierarchy. The method utilizes two alternative methods of acquiring the lock, including a conditional lock acquisition primitive and an unconditional lock acquisition primitive (600), and an unconditional lock release primitive for releasing the lock from a particular processor. In order to prevent races between processors requesting a lock acquisition and a processor releasing the lock, a release flag is utilized. In order to ensure that the processor utilizing the unconditional lock acquisition primitive is granted the lock, a handoff flag is utilized. The lock primitive is utilized for an interruptible lock that determines lock selection among processors based upon a hierarchical position of the processor and the primitive utilized for lock selection. COPYRIGHT: (C)2008,JPO&INPIT
Abstract:
A nestable reader-writer lock minimizes writer and reader overhead by employing lock structures that are shared among groups of processors (24) that have lower latencies. In the illustrated multiprocessor system having a non-uniform memory access (NUMA) architecture, in a first embodiment each processor node has a lock structure (83) composed of a shared counter (84) and associated flag (85) for each CPU group. During a read, the counter can be changed only by processors within a CPU group performing a read. This reduced the reader overhead that otherwise would exist if all processors in the system running share a single counter. During a write, the shared flag can be changed by a process running on any processor in the system. The processors in a CPU group are notified of the write through the shared flag.
Abstract:
A method and computer system for efficiently handling high contention locking in a multiprocessor computer system. The method organizes at least some of the processors in the system into a hierarchy (910, 920), and processes an interruptible lock in response to the hierarchy. The method utilizes two alternative methods of acquiring the lock, including a conditional lock acquisition primitive (800) and an unconditional lock acquisition primitive (600), and an unconditional lock release primitive for releasing the lock from a particular processor. In order to prevent races between processors requesting a lock acquisition and a processor releasing the lock, a release flag is utilized. Furthermore, in order to ensure that the a processor utilizing the unconditional lock acquisition primitive is granted the lock, a handoff flag is utilized. Accordingly, efficiency of a computer system may be enhanced with the ability to utilize a locking primitive for an interruptible lock that determines lock selection among processors based upon a hierarchical position of the processor and the primitive utilized for lock selection.