Dynamic allocation of a pool of threads
AssigneeSun Microsystems, Inc.
InventorsCahya Adi Masputra, Kacheong Poon
Life of this patent
Estimating the term…
Abstract
Embodiments of the present invention provide for execution of a protocol in a multi-processor network device. In one embodiment, a hash function is applied to one or more fields of the data packet header to determine a unique index. A hash table is then queried, whereby data indicating one or more threads corresponding to said unique index is extracted. An available thread of execution, which has previously handled packet in the same receive stream, may thus be selected from a pool of threads. The selected thread of execution is then dispatched to provide for receive processing of the present data packet.
Claims29
A network device comprising:
- an interface module communicatively coupled to a network for acquiring a data packet;
- a plurality of threads of execution;
- and
- a dynamic pool allocator for selectively dispatching one of the plurality of threads of execution for processing said data packet.
A network communication receive process comprising:
- acquiring a data packet;
- selectively dispatching a thread of execution from a pool of threads;
- processing a header of said data packet utilizing said thread of execution;
- and
- delivering a payload of said data packet to a destination application according to said processing said header.
A method of providing for execution of a protocol comprising:
- applying a hash function to one or more fields in a header of a data packet, wherein a unique index is determined;
- querying a hash table, wherein each of a plurality of records correlates one of a plurality of indexes to one or more of a plurality of threads;
- selecting a thread of execution from an available one of said plurality of threads corresponding to said unique index;
- and
- dispatching said available thread of execution.
A computer-readable medium having instructions which when executed by a network device implement a method of data communication comprising:
- acquiring a data packet;
- dispatching a thread of execution from a pool of threads;
- processing a header of said data packet utilizing said thread of execution;
- and
- delivery a payload of said data packet to a destination application according to said processing said header.
Dependencies are inferred from the claim text.