# US 2013/0159580 A1 · Cooperated interrupt moderation for a virtualization environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2013/0159580 A1
- Document ID: US20130159580A1
- Status: Published application
- Kind: A1
- Application number: 13/516,149
- Filed: 2009-12-17
- Published: 2013-06-20
- Earliest claimed: 2009-12-17
- Assignees: Intel Corporation
- Inventors: YaoZu Dong; Yunhong Jiang; Kun Tian
- Web page: https://patentgrep.com/patent/US20130159580A1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/45545: {Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox}
- G06F 9/48: Program initiating; Program switching, e.g. by interrupt
- G06F 9/4812: {by interrupt, e.g. masked}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 13/24: using interrupt (G06F13/32 takes precedence)
- H04L 69/321: Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F 2213/2408: Reducing the frequency of interrupts generated from peripheral to a CPU
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Generally, this disclosure describes systems (and methods) for moderating interrupts in a virtualization environment. An overflow interrupt interval is defined. The overflow interrupt interval is used for triggering activation of an inactive guest so that the guest may respond to a critical event. The guest, including a network application, may be active for a first time interval and inactive for a second time interval. A latency interrupt interval may be defined. The latency interrupt interval is configured for interrupt moderation when the network application associated with a packet flow is active, i.e., when the guest including the network application is active on a processor. Of course, many alternatives, variations, and modifications are possible without departing from this embodiment.

## Claims

### Claim 1

A method, comprising:
defining an overflow interrupt interval for a device, the overflow interrupt interval related to a critical event in a host, the critical event related to a guest comprising a network application, wherein the guest is active for a first time interval and inactive for a second time interval; and
generating a first interrupt from the device to the host if the overflow interrupt interval expires and a packet associated with the network application is received by the device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
defining a latency interrupt interval for the device;
moderating interrupts, based on the latency interrupt interval, from the device to the host when the guest is active on the host, wherein the interrupts are moderated so that each interrupt occurs at the latency interrupt interval; and
generating a second interrupt from the device to the host if the latency interrupt interval expires and a packet has been received by the device.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
indicating whether the guest is active or inactive using a register in the device, wherein the host is configured to update the register when a state of the guest changes; and
determining whether the guest is active or inactive based, at least in part, on the register.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
resetting a latency counter if the guest is active, wherein resetting the latency counter corresponds to starting another latency interrupt interval and the latency counter is related to the latency interrupt interval; and
resetting an overflow counter if the guest is inactive, wherein resetting the overflow counter corresponds to starting another overflow interrupt interval and the overflow counter is related to the overflow interrupt interval.

### Claim 5 (depends on 2)

The method of claim 2, further comprising:
resetting an overflow counter related to the overflow interrupt interval, wherein the overflow counter is reset based on the first or the second interrupt and resetting the overflow counter corresponds to starting another overflow interrupt interval.

### Claim 6 (depends on 2)

The method of claim 2, further comprising:
receiving the first or second interrupt at the host;
processing the received packets; and
resetting a latency counter related to the latency interrupt interval, wherein the packets are processed and the latency counter is reset by the host and resetting the latency counter corresponds to starting another latency interrupt interval.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
resetting an overflow counter related to the overflow interrupt interval, wherein the overflow counter is reset by the host.

### Claim 8

A system comprising, one or more storage mediums having stored thereon, individually or in combination, instructions that when executed by one or more processors result in the following operations comprising:
defining an overflow interrupt interval for a device, the overflow interrupt interval related to a critical event in a host, the critical event related to a guest comprising a network application, wherein the guest is active for a first time interval and inactive for a second time interval; and
generating a first interrupt from the device to the host if the overflow interrupt interval expires and a packet associated with the network application is received by the device.

### Claim 9 (depends on 8)

The system of claim 8, wherein the instructions that when executed by one or more of the processors result in the following additional operations comprising:
defining a latency interrupt interval for the device;
moderating interrupts, based on the latency interrupt interval, from the device to the host when the guest is active on the host, wherein the interrupts are moderated so that each interrupt occurs at the latency interrupt interval; and
generating a second interrupt from the device to the host if the latency interrupt interval expires and a packet has been received by the device.

### Claim 10 (depends on 9)

The system of claim 9, wherein the instructions that when executed by one or more of the processors result in the following additional operations comprising:
indicating whether the guest is active or inactive using a register in the device, wherein the host is configured to update the register when a state of the guest changes; and
determining whether the guest is active or inactive based, at least in part, on the register.

### Claim 11 (depends on 10)

The system of claim 10, wherein the instructions that when executed by one or more of the processors result in the following additional operations comprising:
resetting a latency counter if the guest is active, wherein resetting the latency counter corresponds to starting another latency interrupt interval and the latency counter is related to the latency interrupt interval; and
resetting an overflow counter if the guest is inactive, wherein resetting the overflow counter corresponds to starting another overflow interrupt interval and the overflow counter is related to the overflow interrupt interval.

### Claim 12 (depends on 9)

The system of claim 9, wherein the instructions that when executed by one or more of the processors result in the following additional operations comprising:
resetting an overflow counter related to the overflow interrupt interval, wherein the overflow counter is reset based on the first or the second interrupt and resetting the overflow counter corresponds to starting another overflow interrupt interval.

### Claim 13 (depends on 9)

The system of claim 9, wherein the instructions that when executed by one or more of the processors result in the following additional operations comprising:
receiving the first or second interrupt;
processing the received packets; and
resetting a latency counter related to the latency interrupt interval, wherein the packets are processed and the latency counter is reset by the host and resetting the latency counter corresponds to starting another latency interrupt interval.

### Claim 14 (depends on 13)

The system of claim 13, wherein the instructions that when executed by one or more of the processors result in the following additional operations comprising:
resetting an overflow counter related to the overflow interrupt interval, wherein the overflow counter is reset by the host.

### Claim 15

A system comprising:
a host comprising a processor coupled to host memory, wherein the host memory is configured to store a guest comprising a network application; and
a network adapter coupled to the host, the network adapter comprising interrupt moderation circuitry configured to:
store an overflow interrupt interval for the network adapter, the overflow interrupt interval related to a critical event in the host, the critical event related to the guest, wherein the guest is active for a first time interval and inactive for a second time interval; and
generate a first interrupt from the network adapter to the host if the overflow interrupt interval expires and a packet associated with the network application is received by the network adapter.

### Claim 16 (depends on 15)

The system of claim 15, wherein:
the network adapter is configured to:
store a latency interrupt interval for the network adapter;
moderate interrupts, based on the latency interrupt interval, from the network adapter to the host when the guest is active on the host, wherein the interrupts are moderated so that each interrupt occurs at the latency interrupt interval; and
generate a second interrupt from the network adapter to the host if the latency interrupt interval expires and a packet has been received by the network adapter.

### Claim 17 (depends on 16)

The system of claim 16, wherein:
the host is configured to:
indicate whether the guest is active or inactive using a register in the interrupt moderation circuitry, and
update the register when a state of the guest changes; and
the interrupt moderation circuitry is configured to:
determine whether the guest is active or inactive based, at least in part, on the register.

### Claim 18 (depends on 17)

The system of claim 17, wherein the interrupt moderation circuitry is further configured to:
reset a latency counter if the guest is active, wherein resetting the latency counter corresponds to starting another latency interrupt interval and the latency counter is related to the latency interrupt interval; and
reset an overflow counter if the guest is inactive, wherein resetting the overflow counter corresponds to starting another overflow interrupt interval.

### Claim 19 (depends on 16)

The system of claim 16, wherein the interrupt moderation circuitry is further configured to:
reset an overflow counter related to the overflow interrupt interval, wherein the overflow counter is reset based on the first or the second interrupt and resetting the overflow counter corresponds to starting another overflow interrupt interval.

### Claim 20 (depends on 16)

The system of claim 16, wherein:
the host is further configured to:
receive the first or the second interrupt;
process the received packets; and
reset a latency counter related to the latency interrupt interval, wherein resetting the latency counter corresponds to starting another latency interrupt interval.

### Claim 21 (depends on 20)

The network adapter of claim 20, wherein the host is further configured to:
reset an overflow counter related to the overflow interrupt interval.
