Patent application number | Description | Published |
20090254764 | Optimizing Preemptible Read-Copy Update for Low-Power Usage by Avoiding Unnecessary Wakeups - A technique for low-power detection of a grace period for deferring the destruction of a shared data element until pre-existing references to the data element have been removed. A grace period processing action is implemented that requires a response from a processor that may be running a preemptible reader of said shared data element before further grace period processing can proceed. A power and reader status of the processor is also determined. Grace period processing may proceed despite the absence of a response from the processor if the power and reader status indicates that an actual response from the processor is unnecessary. | 10-08-2009 |
20090300581 | IDENTIFYING STRUCTURED DATA TYPES AS REQUIRING DESIGNATED INITIALIZERS - A technique for enforcing the use of designated initializers in structured type initializations may include determining whether structured data type requires designated initialization, determining whether an initialization of a structured variable declared to use the structured data type employs an improper initializer that is inconsistent with said structured data type, and performing a diagnostic action if the initialization comprises an improper initializer. | 12-03-2009 |
20100023559 | OPTIMIZING GRACE PERIOD DETECTION FOR PREEMPTIBLE READ-COPY UPDATE ON UNIPROCESSOR SYSTEMS - A technique for optimizing grace period detection following a data element update operation that affects preemptible data readers. A determination is made whether the data processing system is a uniprocessor system or a multiprocessor system. Grace period detection processing is performed using a first grace period detection technique if the data processing system is a multiprocessor system. Grace period detection processing is performed using a second grace period detection technique if the data processing system is a uniprocessor system. The grace period detection processing according to either technique 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. | 01-28-2010 |
20100023732 | OPTIMIZING NON-PREEMPTIBLE READ-COPY UPDATE FOR LOW-POWER USAGE BY AVOIDING UNNECESSARY WAKEUPS - A technique for low-power detection of a grace period following a shared data element update operation that affects non-preemptible data readers. A grace period processing action is implemented that requires a processor that may be running a non-preemptible reader of the shared data element to pass through a quiescent state before further grace period processing can proceed. A power status of the processor is also determined. Further grace period processing may proceed without requiring the processor to pass through a quiescent state if the power status indicates that quiescent state processing by the processor is unnecessary. | 01-28-2010 |
20100115235 | Eliminating Synchronous Grace Period Detection For Non-Preemptible Read-Copy Update On Uniprocessor Systems - A technique for optimizing grace period detection in a uniprocessor environment. An update operation is performed on a data element that is shared with non-preemptible readers of the data element. A call is issued to a synchronous grace period detection method. The synchronous grace period detection method performs synchronous grace period detection and returns from the call if the data processing system implements a multi-processor environment at the time of the call. The synchronous grace period detection determines the end of a grace period in which the readers have passed through a quiescent state and cannot be maintaining references to the pre-update view of the shared data. The synchronous grace period detection method returns from the call without performing grace period detection if the data processing system implements a uniprocessor environment at the time of the call. | 05-06-2010 |
20110055630 | Safely Rolling Back Transactions In A Transactional Memory System With Concurrent Readers - A technique for safely rolling back transactional memory transactions without impacting concurrent readers of the uncommitted transaction data. An updater uses a transactional memory technique to perform an data update on data that is shared with a reader. The update is implemented as a transaction in which the updated data is initially uncommitted due to the transaction being subject to roll back. The reader is allowed to perform a data read on the uncommitted data during the transaction. Upon a rollback of the transaction, reclamation of memory locations used by the uncommitted data is deferred until a grace period has elapsed after which the reader can no longer be referencing the uncommitted data. | 03-03-2011 |
20110283082 | Scalable, Concurrent Resizing Of Hash Tables - A system, method and computer program product for resizing a hash table while supporting hash table scalability and concurrency. The hash table has one or more hash buckets each containing one or more items that are chained together in a linked list. Each item in the hash table is processed to determine if the item requires relocation from a first bucket associated with a first table size to second bucket associated with a second table size. If the item requires relocation, it is linked to the second bucket without moving or copying the item in memory. The item is unlinked from the first bucket after waiting until there is no current hash table reader whose search of the hash table could be affected by the unlinking, again without moving or copying the item in memory. | 11-17-2011 |
20130151488 | Optimized Resizing For RCU-Protected Hash Tables - A technique for resizing a first RCU-protected hash table stored in a memory. A second RCU-protected hash table is allocated in the memory as a resized version of the first hash table having a different number of hash buckets, with the hash buckets being defined but initially having no hash table elements. The second hash table is populated by linking each hash bucket thereof to all hash buckets of the first hash table containing elements that hash to the second hash bucket. The second hash table is then published so that it is available for searching by hash table readers. The first table is freed from memory after waiting for a grace period which guarantees that no readers searching the first hash table will be affected by the freeing. | 06-13-2013 |
20130151489 | Optimized Deletion And Insertion For High-Performance Resizable RCU-Protected Hash Tables - Concurrent resizing and modification of a first RCU-protected hash table includes allocating a second RCU-protected hash table, populating it by linking each hash bucket of the second hash table to all hash buckets of the first hash table containing elements that hash to the second hash table bucket, and publishing the second hash table. If the modifying comprises insertion, a new element is inserted at the head of a corresponding bucket in the second hash table. If the modifying comprises deletion, then within an RCU read-side critical section: (1) all pointers in hash buckets of the first and second hash tables that reference the element being deleted are removed or redirected, and (2) the element is freed following a grace period that protects reader references to the deleted element. The first table is freed from memory after awaiting a grace period that protects reader references to the first hash table. | 06-13-2013 |
20130151524 | Optimized Resizing For RCU-Protected Hash Tables - A technique for resizing a first RCU-protected hash table stored in a memory. A second RCU-protected hash table is allocated in the memory as a resized version of the first hash table having a different number of hash buckets, with the hash buckets being defined but initially having no hash table elements. The second hash table is populated by linking each hash bucket thereof to all hash buckets of the first hash table containing elements that hash to the second hash bucket. The second hash table is then published so that it is available for searching by hash table readers. The first table is freed from memory after waiting for a grace period which guarantees that no readers searching the first hash table will be affected by the freeing. | 06-13-2013 |
20130151811 | Optimized Deletion And Insertion For High-Performance Resizable RCU-Protected Hash Tables - Concurrent resizing and modification of a first RCU-protected hash table includes allocating a second RCU-protected hash table, populating it by linking each hash bucket of the second hash table to all hash buckets of the first hash table containing elements that hash to the second hash table bucket, and publishing the second hash table. If the modifying comprises insertion, a new element is inserted at the head of a corresponding bucket in the second hash table. If the modifying comprises deletion, then within an RCU read-side critical section: (1) all pointers in hash buckets of the first and second hash tables that reference the element being deleted are removed or redirected, and (2) the element is freed following a grace period that protects reader references to the deleted element. The first table is freed from memory after awaiting a grace period that protects reader references to the first hash table. | 06-13-2013 |