Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer program product comprising a non-transitory computer readable medium having a computer readable program stored therein, wherein the computer readable program, when executed on a data processing system comprising a host system and a network adapter, causes the data processing system to: receive, in the host system from the network adapter, a plurality of frames of data; record, by the host system, over a current predetermined interval, for each frame in the plurality of frames, a header size associated with the frame; determine, by the host system, a receive buffer address offset for receive buffers in the host system for a next predetermined interval based on the recorded header sizes of the plurality of frames over the current predetermined interval; and configure, by the host system, the network adapter to utilize the receive buffer address offset to perform cache-aligned data transfers with the host system.
2. The computer program product of claim 1 , wherein the computer readable program further causes the data processing system to determine the receive buffer address offset for receive buffers in the host system for a next predetermined interval at least by: selecting a most frequently occurring header size occurring in frames of the current predetermined interval; and determining the receive buffer address offset for receive buffers in the host system for a next predetermined interval based on the most frequently occurring header size.
3. The computer program product of claim 2 , wherein selecting a most frequently occurring header size occurring in frames of the current predetermined interval comprises determining if more than one header size has a frequency of occurrence that is a most frequently occurring header size, and selecting a header size from the more than one header size having a frequency of occurrence that is a most frequently occurring header size based on a previously selected header size for a previous interval.
4. The computer program product of claim 2 , wherein selecting a most frequently occurring header size occurring in frames of the current predetermined interval comprises determining if more than one header size has a frequency of occurrence that is a most frequently occurring header size, and selecting a header size from the more than one header size having a frequency of occurrence that is a most frequently occurring header size based on a most recently selected header size for a previous interval.
5. The computer program product of claim 1 , wherein the current predetermined interval and the next predetermined interval correspond to a predetermined number of frames received by the network adapter.
6. The computer program product of claim 1 , wherein the computer readable program further causes the data processing system to configure the network adapter to utilize the receive buffer address offset to perform cache-aligned data transfers with the host system at least by adding the receive buffer address offset to a starting address of all receive buffers that are supplied to the network adapter during the next predetermined interval.
7. The computer program product of claim 1 , wherein the network adapter supports multiple receive queues, and wherein the data processing system performs the receive, record, determine, and configure operations on each receive queue in the multiple receive queues separately.
8. The computer program product of claim 1 , wherein the computer readable program further causes the data processing system to record, over a current predetermined interval, for each frame in the plurality of frames, a header size associated with the frame at least by, for each frame in the plurality of frames: determining the header size for the frame; determining if a header size object is present in a header size data structure associated with the network adapter that corresponds to the header size for the frame; in response to determining that a header size object corresponding to the header size for the frame is present in the header size data structure, incrementing a counter associated with the header size object; and in response to determining that a header size object corresponding to the header size for the frame is not present in the header size data structure, creating a new header size object corresponding to the header size for the frame in the header size data structure and incrementing a counter associated with the new header size object.
9. The computer program product of claim 8 , wherein the computer readable program further causes the data processing system to determine the receive buffer address offset for receive buffers in the host system for a next predetermined interval at least by: selecting a most frequently occurring header size occurring in frames of the current predetermined interval based on values of counters associated with header size objects in the header size data structure, wherein the most frequently occurring header size corresponds to a header size object in the header size data structure having a highest counter value; and determining the receive buffer address offset for receive buffers in the host system for a next predetermined interval based on the most frequently occurring header size.
10. An apparatus comprising: a host system; and a network adapter coupled to the host system, wherein the host system is configured to: receive a plurality of frames of data; record over a current predetermined interval, for each frame in the plurality of frames, a header size associated with the frame; determine a receive buffer address offset for receive buffers in the host system for a next predetermined interval based on the recorded header sizes of the plurality of frames over the current predetermined interval; and configure the network adapter to utilize the receive buffer address offset to perform cache-aligned data transfers with the host system.
Unknown
February 23, 2016
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.