Emulating a line-based interrupt transaction in response to a message signaled interrupt
First Claim
1. A method of executing a program comprising:
- receiving a message signaled interrupt associated with a peripheral device by a first interrupt service routine in a privileged domain;
calling a second interrupt service routine in a non-privileged domain responsive to receiving the message signaled interrupt;
emulating a line-based interrupt transaction into the second interrupt service routine;
trapping, by a hypervisor in the privileged domain, input/output (I/O) functions invoked by the second interrupt service routine; and
performing, by the hypervisor, virtualized I/Os by emulating the peripheral device associated with the message signaled interrupt.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, apparatuses and program products are disclosed for managing interrupt services in hypervisor and hypervisor-related environments in Message Signaled Interrupts are emulated as other type(s) of interrupt.
According to an aspect of the present invention, a method of executing a program includes receiving a MSI (message signaled interrupt). Responsively, a virtual interrupt is generated and an ISR (interrupt service routine) is invoked that handles a line-based virtual interrupt transaction. A surrogate or virtual peripheral device status may also be provided and may be associated with the virtual interrupt. A single device interrupt event may, in certain circumstances, be serviced both as a line-based interrupt and also as an MSI, or as either responsive to run-time context.
Embodiments of the present invention enable superior tradeoffs in regards to the interrupt sharing to a greater and more flexible extent than with previous implementations. Moreover, it makes possible interrupt sharing using an ISR that was not expressly designed for interrupt sharing.
8 Citations
12 Claims
-
1. A method of executing a program comprising:
-
receiving a message signaled interrupt associated with a peripheral device by a first interrupt service routine in a privileged domain; calling a second interrupt service routine in a non-privileged domain responsive to receiving the message signaled interrupt; emulating a line-based interrupt transaction into the second interrupt service routine; trapping, by a hypervisor in the privileged domain, input/output (I/O) functions invoked by the second interrupt service routine; and performing, by the hypervisor, virtualized I/Os by emulating the peripheral device associated with the message signaled interrupt. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer program product comprising:
-
at least one computer-readable medium having instructions encoded therein, the instructions when executed by at least one processor cause said at least one processor to; operate for interrupt handling by steps comprising the acts of; receiving a message signaled interrupt associated with a peripheral device by a first interrupt service routine in a privileged domain; calling a second interrupt service routine in a non-privileged domain responsive to receiving the message signaled interrupt; emulating a line-based interrupt transaction into the second interrupt service routine; trapping, by a hypervisor in the privileged domain, input/output (I/O) functions invoked by the second interrupt service routine; and performing, by the hypervisor, virtualized I/Os by emulating the peripheral device associated with the message signaled interrupt. - View Dependent Claims (8, 9)
-
-
10. A method comprising:
-
an act of modulating a signal onto an electro-magnetic carrier wave impressed into a tangible medium, or of demodulating the signal from the electro-magnetic carrier wave, the signal having instructions encoded therein, the instructions when executed by at least one processor causing said at least one processor to; operate for interrupt handling by steps comprising the acts of; receiving a message signaled interrupt associated with a peripheral device by a first interrupt service routine in a privileged domain; calling a second interrupt service routine in a non-privileged domain responsive to receiving the message signaled interrupt; emulating a line-based interrupt transaction into the second interrupt service routine; trapping, by a hypervisor in the privileged domain, input/output (I/O) functions invoked by the second interrupt service routine; and performing, by the hypervisor, virtualized I/Os by emulating the peripheral device associated with the message signaled interrupt. - View Dependent Claims (11, 12)
-
Specification