Patent ID: 9378059
Filing Date: 2016-06-28
CPC Classification: G06F

Claim Text:
1. A data offload system comprising: a multi-core hardware processor having a plurality of execution cores; an offload application to execute on the multi-core hardware processor, wherein the offload application comprises a plurality of threads; an input interface to receive an incoming data stream and write a plurality of data blocks of the incoming data stream to an input buffer accessible to the offload application; a first lockless buffer and a second lockless buffer; a receive thread of the plurality of threads to read a first one the plurality of data blocks from the input buffer and to read a second one the plurality of data blocks from the input buffer, wherein the receive thread performs a first write operation to write the first data block to the first lockless buffer without locking the first lockless buffer to allow access to the first lockless buffer by other threads of the plurality of threads while the receive thread performs the first write operation, and wherein the receive thread performs a second write operation to write the second data block to the second lockless buffer without locking the second lockless buffer to allow access to the second lockless buffer by other threads of the plurality of threads while the receive thread performs the second write operation; a first send thread of the plurality of threads to perform a first send operation to send the first data block from the first lockless buffer without locking the first lockless buffer to allow access to the first lockless buffer by other threads of the plurality of threads while the first send thread performs the first send operation; and a second send thread of the plurality of threads to perform a second send operation to send the second data block from the second lockless buffer without locking the second lockless buffer to allow access to the second lockless buffer by other threads of the plurality of threads while the second send thread performs the second send operation.