IP Library Granted Patent US 10,380,047
Granted Patent B2
US 10,380,047 · App. 14/664,988 · Granted Aug 13, 2019

Traffic-dependent adaptive interrupt moderation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,380,047
App. No.
14/664,988
Granted
Aug 13, 2019
Kind
B2
Abstract

A method for communications includes receiving in a network interface controller (NIC) of a host computer incoming data packets from a network on multiple active rings. An average throughput rate of the incoming data packets is measured over the active rings. For each ring among a plurality of the active rings, a respective throughput rate of the incoming data packets on the ring is measured, and a respective interrupt moderation parameter of the ring is set responsively to a comparison of the respective throughput rate on the ring to the average throughput rate. Interrupts are issued from the NIC to a central processing unit (CPU) of the host computer in response to the incoming data packets on the ring at a rate determined in accordance with the respective interrupt moderation parameter.

Claims (27)

1. A method for communications, comprising:

receiving in a network interface controller (NIC) of a host computer incoming data packets from a network on multiple active rings;

measuring a total average throughput rate of the incoming data packets over the multiple active rings; and

for each ring among a plurality of the multiple active rings:

measuring a respective throughput rate of the incoming data packets on the ring;

setting a respective interrupt moderation parameter of the ring responsively to a comparison of the respective throughput rate on the ring to the total average throughput rate over the multiple active rings; and

issuing interrupts from the NIC to a central processing unit (CPU) of the host computer in response to the incoming data packets on the ring at a rate determined in accordance with the respective interrupt moderation parameter.

2. The method according to claim 1 , and comprising identifying one or more idle rings on which the respective throughput rate is less than a predefined idle threshold, and setting the respective interrupt moderation parameter value for the one or more idle rings to a predefined idle value.

3. The method according to claim 1 , wherein setting the respective interrupt moderation parameter comprises, when the respective throughput rate on the ring is less than a predefined fraction of the total average throughput rate over the multiple active rings, setting the respective interrupt moderation parameter for the ring to a latency-mode value.

4. The method according to claim 3 , wherein setting the respective interrupt moderation parameter comprises, when the respective throughput rate on the ring is greater than the predefined fraction of the total average throughput rate over the multiple active rings, setting the respective interrupt moderation parameter for the ring to a throughput-mode value.

5. The method according to claim 4 , wherein setting the respective interrupt moderation parameter for the ring to the latency mode value comprises setting a minimum time between interrupts on the ring to zero, while setting the respective interrupt moderation parameter for the ring to the throughput-mode value comprises setting the minimum time between interrupts to a non-zero value.

6. The method according to claim 4 , wherein the predefined fraction is a first fraction, and wherein setting the respective interrupt moderation parameter comprises, when the respective throughput rate on the ring is greater than the first fraction of the total average throughput rate over the multiple active rings but less than a second fraction of the total average throughput rate over the multiple active rings, setting the respective interrupt moderation parameter for the ring to a mid-range throughput value, and when the respective throughput rate on the ring is greater than the second fraction of the total average throughput rate over the multiple active rings, setting the respective interrupt moderation parameter for the ring to a high-throughput value, which is different from the mid-range throughput value.

7. The method according to claim 4 , wherein setting the respective interrupt moderation parameter for the ring to the throughput-mode value comprises counting a number of the rings for which the respective throughput rate on the ring is greater than the predefined fraction of the total average throughput rate over the multiple active rings, and adjusting the throughput-mode value of the interrupt moderation parameter responsively to the number.

8. The method according to claim 1 , wherein the rings are associated with different, respective cores of the CPU, and wherein setting the respective interrupt moderation parameter comprises setting different, respective values of the interrupt moderation parameter for the cores, depending upon the rings with which the cores are respectively associated.

9. Apparatus for communications, comprising:

a central processing unit (CPU);

a system memory; and

a network interface controller (NIC), which is configured to receive incoming data packets from a network on multiple active rings and to issue interrupts to the CPU in response to the incoming data packets at a rate determined, for each ring, in accordance with a respective interrupt moderation parameter that is set for the ring,

wherein the CPU is configured to measure an average throughput rate of the incoming data packets over the multiple active rings, as a function of the total throughput of all the rings divided by a count of the multiple active rings, and, for each ring among a plurality of the multiple active rings, to measure a respective throughput rate of the incoming data packets on the ring, and to set the respective interrupt moderation parameter of the ring responsively to a comparison of the respective throughput rate on the ring to the average throughput rate over the multiple active rings.

10. The apparatus according to claim 9 , wherein the CPU is configured to identify one or more idle rings on which the respective throughput rate is less than a predefined idle threshold, and to set the respective interrupt moderation parameter value for the one or more idle rings to a predefined idle value.

11. The apparatus according to claim 9 , wherein when the respective throughput rate on the ring is less than a predefined fraction of the average throughput rate over the multiple active rings, the respective interrupt moderation parameter for the ring is set to a latency-mode value.

12. The apparatus according to claim 11 , wherein when the respective throughput rate on the ring is greater than the predefined fraction of the average throughput rate over the multiple active rings, the respective interrupt moderation parameter for the ring is set to a throughput-mode value.

13. The apparatus according to claim 12 , wherein the interrupt moderation parameter comprises a minimum time between interrupts on the ring, and the latency-mode value of the minimum time between interrupts is set to zero, while the throughput-mode value of the minimum time between interrupts is set to a non-zero value.

14. The apparatus according to claim 12 , wherein the predefined fraction is a first fraction, and wherein when the respective throughput rate on the ring is greater than the first fraction of the average throughput rate over the multiple active rings but less than a second fraction of the average throughput rate over the multiple active rings, the respective interrupt moderation parameter for the ring is set to a mid-range throughput value, and when the respective throughput rate on the ring is greater than the second fraction of the average throughput rate over the multiple active rings, the respective interrupt moderation parameter for the ring is set to a high-throughput value, which is different from the mid-range throughput value.

15. The apparatus according to claim 12 , wherein the CPU is configured to count a number of the rings for which the respective throughput rate on the ring is greater than the predefined fraction of the average throughput rate over the multiple active rings, and to adjust the throughput-mode value of the interrupt moderation parameter responsively to the number.

16. The apparatus according to claim 9 , wherein the rings are associated with different, respective cores of the CPU, and wherein the CPU is configured to set different, respective values of the interrupt moderation parameter for the cores, depending upon the rings with which the cores are respectively associated.

17. A computer software product, comprising a non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by a computer that includes a CPU and a network interface controller (NIC), which is configured to receive incoming data packets from a network on multiple active rings and to issue interrupts to the CPU in response to the incoming data packets at a rate determined, for each ring, in accordance with a respective interrupt moderation parameter that is set for the ring, cause the computer to measure a collective average throughput rate of the incoming data packets over the multiple active rings and, for each ring among a plurality of the multiple active rings, to measure a respective throughput rate of the incoming data packets on the ring, and to set the respective interrupt moderation parameter of the ring responsively to a comparison of the respective throughput rate on the ring to the collective average throughput rate over the multiple active rings.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 37900/0720 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 046542/0792 →
PATENT SECURITY AGREEMENT Recorded Feb 24, 2016
From: MELLANOX TECHNOLOGIES, LTD.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037900/0720 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2015
From: DEGANI, YUVAL
To: MELLANOX TECHNOLOGIES LTD.
Reel/Frame 035226/0476 →
Cited By (1)
US 12,218,860