G06F2209/522

Lockless write tracking
09990237 · 2018-06-05 · ·

A method and system for tracking write access in a memory. The memory is partitioned into pages and each page is pointed to by a pointer. Upon receiving a request from a requester, a computer system stores a copy of a file that contains pointers to modified pages in the memory. The computer system then clears the file, and protects the pages in the memory from write access after clearing of the file. The stored copy of the file is sent to the requester.

Hardware access counters and event generation for coordinating multithreaded processing
09928117 · 2018-03-27 · ·

A computer system includes a hardware synchronization component (HSC). Multiple concurrent threads of execution issue instructions to update the state of the HSC. Multiple threads may update the state in the same clock cycle and a thread does not need to receive control of the HSC prior to updating its states. Instructions referencing the state received during the same clock cycle are aggregated and the state is updated according to the number of the instructions. The state is evaluated with respect to a threshold condition. If it is met, then the HSC outputs an event to a processor. The processor then identifies a thread impacted by the event and takes a predetermined action based on the event (e.g. blocking, branching, unblocking of the thread).

Method and apparatus for performing a bus lock and translation lookaside buffer invalidation

A method and apparatus for performing a bus lock and a translation lookaside buffer invalidate transaction includes receiving, by a lock master, a lock request from a first processor in a system. The lock master sends a quiesce request to all processors in the system, and upon receipt of the quiesce request from the lock master, all processors cease issuing any new transactions and issue a quiesce granted transaction. Upon receipt of the quiesce granted transactions from all processors, the lock master issues a lock granted message that includes an identifier of the first processor. The first processor performs an atomic transaction sequence and sends a first lock release message to the lock master upon completion of the atomic transaction sequence. The lock master sends a second lock release message to all processors upon receiving the first lock release message from the first processor.

Accelerating and offloading lock access over a network

Lock access is managed in a data network having an initiator node and a remote target by issuing a lock command from a first process to the remote target via an initiator network interface controller to establish a lock on a memory location, and prior to receiving a reply to the lock command communicating a data access request to the memory location from the initiator network interface controller. Prior to receiving a reply to the data access request, an unlock command issues from the initiator network interface controller. The target network interface controller determines the lock content, and when permitted by the lock accesses the memory location. After accessing the memory location the target network interface controller executes the unlock command. When the lock prevents data access, the lock operation is retried a configurable number of times until data access is allowed or a threshold is exceeded.

HARDWARE ACCESS COUNTERS AND EVENT GENERATION FOR COORDINATING MULTITHREADED PROCESSING
20170168875 · 2017-06-15 ·

A computer system includes a hardware synchronization component (HSC). Multiple concurrent threads of execution issue instructions to update the state of the HSC. Multiple threads may update the state in the same clock cycle and a thread does not need to receive control of the HSC prior to updating its states. Instructions referencing the state received during the same clock cycle are aggregated and the state is updated according to the number of the instructions. The state is evaluated with respect to a threshold condition. If it is met, then the HSC outputs an event to a processor. The processor then identifies a thread impacted by the event and takes a predetermined action based on the event (e.g. blocking, branching, unblocking of the thread).

ASYNCHRONOUS AND IDEMPOTENT DISTRIBUTED LOCK INTERFACES
20170163762 · 2017-06-08 · ·

Methods and apparatus for distributed locking interfaces are disclosed. A state manager implements programmatic interfaces for distributed locking operations. In response to a queue-for-lock request for a registry element received via an interface, the state manager provides to the requester, a reference to a first asynchronous computation. The first asynchronous computation comprises an insertion of a lock request into a queue of waiters for a lock on the element. In response to a blocking request for a result of the computation, the state manager transmits, after the lock request has been inserted into the queue of waiters, a notification of the insertion of the request. The notification in turn includes a reference to a second asynchronous computation. The second asynchronous computation comprises a grant of the lock on the particular element to the requester.

Receive-side scaling in a computer system using sub-queues assigned to processing cores
09639403 · 2017-05-02 · ·

A system, method, and computer program product are provided for receiving an incoming data stream. The system comprises a multi-core processor with a memory unit that is configured to include a circular queue that receives a data stream. The circular queue is divided into a plurality of sub-queues determined as a multiple of the number of processing cores, and each sub-queue is assigned to one processing core such that as data is received into a region covered by a particular sub-queue, the processing core assigned to the particular sub-queue processes the data. The system is also configured to update a head pointer and a tail pointer of the circular queue. The head pointer is updated as data is received into the circular queue and the tail pointer is updated by a particular processing core as it processes data in its assigned sub-queue.

Distributed locking method and system for networked device management
09619302 · 2017-04-11 · ·

A system and method for distributed locking for networked device management is provided. In one aspect, a lock is granted for a resource attached to a switched fabric, in response to receiving a request to access the resource. If the resource is already locked by another process or device, or otherwise unavailable, the request may be queued or failed.

Asynchronous and idempotent distributed lock interfaces
09578130 · 2017-02-21 · ·

Methods and apparatus for distributed locking interfaces are disclosed. A state manager implements programmatic interfaces for distributed locking operations. In response to a queue-for-lock request for a registry element received via an interface, the state manager provides to the requester, a reference to a first asynchronous computation. The first asynchronous computation comprises an insertion of a lock request into a queue of waiters for a lock on the element. In response to a request for a result of the computation, the state manager transmits, after the lock request has been inserted into the queue of waiters, a notification of the insertion of the request. The notification in turn includes a reference to a second asynchronous computation. The second asynchronous computation comprises a grant of the lock on the particular element to the requester.

Shared locking for storage centric exclusive locks

A computing device receives a request from a host for a shared lock on a resource. The computing device obtains an exclusive lock on the resource using a locking data structure that is stored on the storage domain. The computing device subsequently obtains a shared lock on the resource for the host by writing a flag to the locking data structure, wherein the flag indicates that the host has the shared lock on the resource. The computing device then releases the exclusive lock on the resource.