Method, system, and article of manufacture for utilizing host memory from an offload adapter
First Claim
Patent Images
1. A method, comprising:
- allocating, by a protocol processor included in a network adapter, a memory buffer in a host memory, wherein the host memory is comprised in a host that is coupled to the network adapter;
initially processing a packet at the network adapter to generate data for offloading to the memory buffer in the host;
offloading, by the protocol processor, the generated data to the memory buffer in the host; and
subsequent to the offloading by the protocol processor of the generated data to the memory buffer in the host, processing, by the protocol processor, the offloaded data, wherein the method further comprises;
(i) dividing the memory buffer into a plurality of buffers, wherein the plurality of buffers stores packet data associated with a plurality of network sessions, wherein an address of the memory buffer is not exposed directly or indirectly to a host application that executes in the host, and wherein the memory buffer comprises a non-pageable memory;
(ii) dividing a buffer into one or more packet regions, wherein a size of a packet region exceeds a size of a maximum transmission unit of packets associated with a protocol; and
(iii) storing a first packet data associated with a first packet in a first packet region, wherein if a data payload in the first packet exceeds a size of the host application buffer, then queuing the data payload into the memory buffer.
1 Assignment
0 Petitions
Accused Products
Abstract
Provided are a method, system, and article of manufacture, wherein in one implementation of the method a memory buffer is allocated in a host memory by a protocol processor, wherein the host memory is comprised in a host that is coupled to a network adapter. A packet is processed initially at the network adapter to generate data for offloading to the memory buffer in the host. The generated data is offloaded by the protocol processor to the memory buffer in the host. The offloaded data is processed by the protocol processor.
-
Citations
28 Claims
-
1. A method, comprising:
-
allocating, by a protocol processor included in a network adapter, a memory buffer in a host memory, wherein the host memory is comprised in a host that is coupled to the network adapter; initially processing a packet at the network adapter to generate data for offloading to the memory buffer in the host; offloading, by the protocol processor, the generated data to the memory buffer in the host; and subsequent to the offloading by the protocol processor of the generated data to the memory buffer in the host, processing, by the protocol processor, the offloaded data, wherein the method further comprises; (i) dividing the memory buffer into a plurality of buffers, wherein the plurality of buffers stores packet data associated with a plurality of network sessions, wherein an address of the memory buffer is not exposed directly or indirectly to a host application that executes in the host, and wherein the memory buffer comprises a non-pageable memory; (ii) dividing a buffer into one or more packet regions, wherein a size of a packet region exceeds a size of a maximum transmission unit of packets associated with a protocol; and (iii) storing a first packet data associated with a first packet in a first packet region, wherein if a data payload in the first packet exceeds a size of the host application buffer, then queuing the data payload into the memory buffer. - View Dependent Claims (2, 3, 4, 5, 6, 21, 22)
-
-
7. A network adapter, wherein the network adapter is coupled to a host having a host memory, and wherein a memory buffer is implemented in the host memory, the network adapter comprising:
-
a memory coupled to the network adapter; a protocol processor included in the network adapter, wherein the protocol processor is allocates the memory buffer, wherein the protocol processor initially processes a packet at the network adapter to generate data to offload to the memory buffer, wherein the protocol processor offloads the generated data to the memory buffer in the host, and wherein the protocol processor processes the offloaded data subsequent to offloading the generated data to the memory buffer in the host, wherein the protocol processor further performs; (i) dividing the memory buffer into a plurality of buffers to store packet data associated with a plurality of network sessions, wherein an address of the memory buffer is not exposed directly or indirectly to a host application that executes in the host, and wherein the memory buffer comprises a non-pageable memory; (ii) dividing a buffer into one or more packet regions, wherein a size of a packet region exceeds a size of a maximum transmission unit of packets associated with a protocol; and (iii) storing a first packet data associated with a first packet in a first packet region, wherein if a data payload in the first packet exceeds a size of the host application buffer, then queuing the data payload into the memory buffer. - View Dependent Claims (8, 9, 10, 11, 12, 23, 24)
-
-
13. A system in communication with data storage, comprising:
-
a host; a data storage controller to manage Input/Output (I/O) access to the data storage, wherein the data storage controller is coupled to the host; a network adapter coupled to the host; a host memory coupled to the host; a memory buffer implemented in the host memory, wherein a protocol processor included in the network adapter is allocates the memory buffer, wherein the protocol processor initially processes a packet at the network adapter to generate data to offload to the memory buffer, wherein the protocol processor is offloads the generated data to the memory buffer in the host, and wherein the protocol processor processes the offloaded data subsequent to offloading the generated data to the memory buffer in the host, wherein; (i) the memory buffer is divided into a plurality of buffers, wherein the plurality of buffers stores packet data associated with a plurality of network sessions, wherein an address of the memory buffer is not exposed directly or indirectly to a host application that executes in the host, and wherein the memory buffer comprises a non-pageable memory; (ii) a buffer is divided into one or more packet regions, wherein a size of a packet region exceeds a size of a maximum transmission unit of packets associated with a protocol; and (iii) a first packet data associated with a first packet is stored in a first packet region, wherein if a data payload in the first packet exceeds a size of the host application buffer, then queuing the data payload into the memory buffer. - View Dependent Claims (14, 25, 26)
-
-
15. An article of manufacture, comprising a storage medium having stored therein instructions that when executed by a machine results in the following:
-
allocating a memory buffer in a host memory, wherein the host memory is comprised in a host that is coupled to a network adapter; initially processing a packet at the network adapter to generate data for offloading to the memory buffer in the host; offloading, by a protocol processor included in the network adapter, the generated data to the memory buffer in the host; and subsequent to the offloading by the protocol processor of the generated data to the memory buffer in the host, processing, by the protocol processor, the offloaded data, wherein the instructions when executed further results in the following; (i) dividing the memory buffer into a plurality of buffers, wherein the plurality of buffers stores packet data associated with a plurality of network sessions, wherein an address of the memory buffer is not exposed directly or indirectly to a host application that executes in the host, and wherein the memory buffer comprises a non-pageable memory; (ii) dividing a buffer into one or more packet regions, wherein a size of a packet region exceeds a size of a maximum transmission unit of packets associated with a protocol; and (iii) storing a first packet data associated with a first packet in a first packet region, wherein if a data payload in the first packet exceeds a size of the host application buffer, then queuing the data payload into the memory buffer. - View Dependent Claims (16, 17, 18, 19, 20, 27, 28)
-
Specification