IP Library Granted Patent US 9,361,114
Granted Patent B1
US 9,361,114 · App. 11/296,651 · Granted Jun 7, 2016

Instruction based interrupt masking for managing interrupts in a computer environment

Inventors: Gil Tene (Los Altos Hills, CA); Scott Sellers (Menlo Park, CA); Jack Choquette (Mountain View, CA); Michael A. Wolf (San Francisco, CA)
Assignee: Azul Systems, Inc.
G06F9/3861G06F9/4812
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 9,361,114
App. No.
11/296,651
Granted
Jun 7, 2016
Kind
B1
Abstract

Managing interrupts in a computing environment includes executing an instruction, deriving an interrupt mask value based at least in part on the instruction being executed, performing a masking operation involving the interrupt mask value and at least one pending interrupt to determine whether a pending interrupt is allowable, and in the event that the pending interrupt is allowable, performing the interrupt.

Claims (39)

1. A method of managing interrupts in a computing environment, comprising:

executing an instruction, wherein the instruction comprises a native instruction included in a set of native instructions used to emulate a virtual instruction;

selecting, from a plurality of interrupt masks, an appropriate, corresponding interrupt mask for the native instruction being executed, wherein:

representations of at least a portion of the plurality of interrupt masks were previously stored in a table, and wherein the table specifies a mapping of each type of native instruction in the set of native instructions to a particular interrupt mask included in the plurality of interrupt masks;

a given interrupt mask in the plurality of interrupt masks is associated with a corresponding bit pattern representing a corresponding set of allowable and disallowable types of interrupts, wherein each bit in the bit pattern indicates whether a corresponding type of interrupt is allowable; and

selecting the appropriate, corresponding interrupt mask for the native instruction being executed includes performing a lookup of the table based at least in part on the type of the native instruction being executed;

subsequent to selecting the appropriate, corresponding interrupt mask, determining, based at least in part on a masking operation involving the selected interrupt mask, whether each pending type of interrupt in a set of one or more pending types of interrupts is allowable at least in part by checking a corresponding bit in the bit pattern associated with the selected interrupt mask; and

in the event that a pending type of interrupt is determined to be allowable, performing the pending type of interrupt.

2. A method as recited in claim 1 , further comprising, in the event that no pending type of interrupt is determined to be allowable, performing the normal function of the native instruction.

3. A method as recited in claim 1 , wherein in the event that the pending type of interrupt is performed, the normal function of the native instruction is not performed.

4. A method as recited in claim 1 , wherein the native instruction being executed comprises a branch instruction.

5. A method as recited in claim 1 , wherein the native instruction being executed comprises a safe point instruction.

6. A method as recited in claim 1 , wherein the computing environment is a virtual machine environment.

7. A system for handling interrupts, comprising:

a processor configured to:

execute an instruction, wherein the instruction comprises a native instruction included in a set of native instructions used to emulate a virtual instruction;

select, from a plurality of interrupt masks, an appropriate, corresponding interrupt mask for the native instruction being executed, wherein:

representations of at least a portion of the plurality of interrupt masks were previously stored in a table, and wherein the table specifies a mapping of each type of native instruction in the set of native instructions to a particular interrupt mask included in the plurality of interrupt masks;

a given interrupt mask in the plurality of interrupt masks is associated with a corresponding bit pattern representing a corresponding set of allowable and disallowable types of interrupts, wherein each bit in the bit pattern indicates whether a corresponding type of interrupt is allowable; and

selecting the appropriate, corresponding interrupt mask for the native instruction being executed includes performing a lookup of the table based at least in part on the type of the native instruction being executed;

subsequent to selecting the appropriate, corresponding interrupt mask, determine, based at least on a masking operation involving the selected interrupt mask, whether each pending type of interrupt in a set of one or more pending types of interrupts is allowable at least in part by checking a corresponding bit in the bit pattern associated with the selected interrupt mask; and

in the event that a pending type of interrupt is determined to be allowable, perform the pending type of interrupt.

8. A system as recited in claim 7 , wherein the processor is further configured to perform the normal function of the native instruction in the event that no pending type of interrupt is determined to be allowable.

9. A system as recited in claim 7 , wherein the processor is further configured not to perform the normal function of the native instruction in the event that the pending type of interrupt is performed.

10. A system as recited in claim 7 , wherein the native instruction being executed comprises a branch instruction.

11. A system as recited in claim 7 , wherein the native instruction being executed comprises a safe point instruction.

12. A processor comprising:

a logical unit configured to:

execute an instruction, wherein the instruction comprises a native instruction included in a set of native instructions used to emulate a virtual instruction;

select, from a plurality of interrupt masks, an appropriate, corresponding interrupt mask for the native instruction being executed, wherein:

representations of at least a portion of the plurality of interrupt masks were previously stored in a table, and wherein the table specifies a mapping of each type of native instruction in the set of native instructions to a particular interrupt mask included in the plurality of interrupt masks;

a given interrupt mask in the plurality of interrupt masks is associated with a corresponding bit pattern representing a corresponding set of allowable and disallowable types of interrupts, wherein each bit in the bit pattern indicates whether a corresponding type of interrupt is allowable; and

selecting the appropriate, corresponding interrupt mask for the native instruction being executed includes performing a lookup of the table based at least in part on the type of the native instruction being executed;

subsequent to selecting the appropriate, corresponding interrupt mask, determine, based at least in part on a masking operation involving the selected interrupt mask, whether each pending type of interrupt in a set of one or more pending types of interrupts is allowable at least in part by checking a corresponding bit in the bit pattern associated with the selected interrupt mask; and

in the event that a pending type of interrupt is determined to be allowable, perform the pending type of interrupt.

13. A processor as recited in claim 12 , wherein the logical unit is further configured to perform the normal function of the native instruction in the event that no pending type of interrupt is determined to be allowable.

14. A processor as recited in claim 12 , wherein the logical unit is further configured not to perform the normal function of the native instruction in the event that the pending type of interrupt is performed.

15. A processor as recited in claim 12 , wherein the native instruction being executed comprises a branch instruction.

16. A processor as recited in claim 12 , wherein the native instruction being executed comprises a safe point instruction.

Assignments (6)
RELEASE OF SECURITY INTERESTS IN PATENTS RECORDED AT REEL/FRAME 052293/0121 Recorded Dec 3, 2025
From: GOLUB CAPITAL LLC, AS COLLATERAL AGENT
To: AZUL SYSTEMS, INC.
Reel/Frame 073466/0064 →
SECURITY INTEREST Recorded Dec 3, 2025
From: AZUL SYSTEMS, INC.
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 073828/0083 →
SECURITY INTEREST Recorded Apr 2, 2020
From: AZUL SYSTEMS, INC.
To: GOLUB CAPITAL LLC, AS COLLATERAL AGENT
Reel/Frame 052293/0121 →
RELEASE OF SECURITY INTEREST Recorded Feb 21, 2019
From: PARTNERS FOR GROWTH IV, L.P.
To: AZUL SYSTEMS, INC.
Reel/Frame 048411/0138 →
SECURITY INTEREST Recorded Mar 1, 2016
From: AZUL SYSTEMS, INC.
To: PARTNERS FOR GROWTH IV, L.P.
Reel/Frame 037959/0694 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2006
From: TENE, GIL; SELLERS, SCOTT; CHOQUETTE, JACK H.; WOLF, MICHAEL A.
To: AZUL SYSTEMS, INC.
Reel/Frame 017377/0896 →