System and method for supporting efficient buffer usage with a single external memory interface
AssigneeOracle International Corporation
InventorUttam Aggarwal
Life of this patent
Estimating the term…
Abstract
A system and method can support input/output (I/O) virtualization in a computing environment. The system can comprise a free buffer pool in a memory. An I/O device operates to use the free buffer pool to store disk read data received from a physical host bus adaptor (HBA). The free buffer pool can contain a two-dimensional linked list and a one-dimensional linked list. Each entry of the two-dimensional linked list contains multiple packet buffers in consecutive memory locations, and each entry of the one-dimensional linked list contains a single packet buffer.
Claims20
A system for supporting input/output (I/O) virtualization in a computing environment, comprising:
- a free buffer pool in a memory, wherein the free buffer pool contains a two-dimensional linked list and a one-dimensional linked list,
- wherein each entry of the two-dimensional linked list contains multiple packet buffers in consecutive memory locations, and each entry of the one-dimensional linked list contains a single packet buffer,
- wherein an I/O device operates to use the free buffer pool to store data exchanged between the I/O device and an associated physical host bus adaptor (HBA) in accordance with a transaction;
- wherein the I/O device operates to selectively allocate one or more packet buffers in one of either the two-dimensional linked list or the one-dimensional linked list in accordance with a type of the transaction;
- and
- wherein the I/O device operates to selectively en-queue the data in the one or more of the allocated packet buffers.
A method for supporting efficient packet processing in a network environment, the method comprising:
- providing a free buffer pool in a memory, wherein the free buffer pool contains a two-dimensional linked list and a one-dimensional linked list;
- allowing each entry of the two-dimensional linked list to contain multiple packet buffers in consecutive memory locations, and each entry of the one-dimensional linked list to contain a single packet buffer;
- using, via an I/O device, the free buffer pool to store data exchanged between the I/O device and an associated physical host bus adaptor (HBA) in accordance with a transaction;
- selectively allocating one or more packet buffers in one of either the two-dimensional linked list or the one-dimensional linked list in accordance with a type of the transaction;
- and
- selectively en-queueing the data in the one or more of the allocated packet buffers.
A non-transitory machine readable storage medium having instructions stored thereon that when executed cause a system to perform steps comprising:
- providing a free buffer pool in a memory, wherein the free buffer pool contains a two-dimensional linked list and a one-dimensional linked list;
- allowing each entry of the two-dimensional linked list to contain multiple packet buffers in consecutive memory locations, and each entry of the one-dimensional linked list to contain a single packet buffer;
- using, via an I/O device, the free buffer pool to store data received exchanged between the I/O device and an associated physical host bus adaptor (HBA) in accordance with a transaction;
- selectively allocating, by the I/O device, one or more packet buffers in one of either the two-dimensional linked list or the one-dimensional linked list in accordance with a type of the transaction;
- and
- selectively en-queueinq, by the I/O device, the data in the one or more of the allocated packet buffers.
Dependencies are inferred from the claim text.