Adjusting buffer size for network interface controller
AssigneeRed Hat Israel, Ltd.
InventorMichael Tsirkin
Life of this patent
Estimating the term…
Abstract
Systems and methods for adjusting the receive buffer size for network interface controllers. An example method may comprise: selecting a packet size value having a certain ordinal number in an ordered sequence of sizes of a plurality of data packets received by a network interface controller; and adjusting, in view of the selected packet size value, a size of a buffer associated with the network interface controller.
Claims17
A method, comprising:
- storing, by a processing device, an ordered sequence of sizes of a plurality of data packets, wherein the sequence is defined by a moving window comprising a pre-defined number of data packets received by a network interface controller;
- responsive to receiving a new data packet, shifting the moving window to include the new data packet while excluding a least recently arrived data packet,
- excluding, from the ordered sequence, a size of the least recently received data packet, and inserting, into the ordered sequence, a size of the new data packet;
- adjusting a pre-defined ordinal number in view of a performance metric reflecting a difference between a total size of buffers allocated for the plurality of data packets and a total size of the plurality of data packets;
- identifying, by the processing device, a sequence element having the pre-defined ordinal number within the ordered sequence;
- and
- adjusting, using a packet size represented by the identified sequence element, a size of a buffer allocated for incoming data packets.
A system comprising:
- a network interface controller;
- a memory to store a plurality of data packets received by the network interface controller;
- and
- a processing device, operatively coupled to the memory, to:
- store an ordered sequence of sizes of the plurality of data packets, wherein the sequence is defined by a moving window comprising a pre-defined number of data packets received by a network interface controller;
- responsive to receiving a new data packet, shift the moving window to include the new data packet while excluding a least recently arrived data packet,
- exclude, from the ordered sequence, a size of the least recently received data packet, and inserting, into the ordered sequence, a size of the new data packet;
- adjust a pre-defined ordinal number in view of a performance metric reflecting a difference between a total size of buffers allocated for the plurality of data packets and a total size of the plurality of data packets;
- identify a sequence element having the pre-defined ordinal number within the ordered sequence;
- and
- adjust, using a packet size represented by the identified sequence element, a size of a buffer allocated for incoming data packets.
A computer-readable non-transitory storage medium comprising executable instructions that, when executed by a processing device, cause the processing device to:
- store an ordered sequence of sizes of a plurality of data packets, wherein the sequence is defined by a moving window comprising a pre-defined number of data packets received by a network interface controller;
- responsive to receiving a new data packet, shift the moving window to include the new data packet while excluding a least recently arrived data packet,
- exclude, from the ordered sequence, a size of the least recently received data packet, and inserting, into the ordered sequence, a size of the new data packet;
- adjust a pre-defined ordinal number in view of a performance metric reflecting a difference between a total size of buffers allocated for the plurality of data packets and a total size of the plurality of data packets;
- identify, by the processing device, a sequence element having the pre-defined ordinal number within the ordered sequence;
- and
- adjust, using a packet size represented by the identified sequence element, a size of a buffer allocated for incoming data packets.
Dependencies are inferred from the claim text.