diff options
| author | Jan Kiszka <jan.kiszka@siemens.com> | 2012-03-29 15:14:12 -0400 |
|---|---|---|
| committer | Avi Kivity <avi@redhat.com> | 2012-04-24 08:59:47 -0400 |
| commit | 07975ad3b30579ca27d880491ad992326b930c63 (patch) | |
| tree | fea166a02c387949a09a948a51781074bdc9ed68 /Documentation/virtual/kvm | |
| parent | 1f15d10984c854e077da5aa1a23f901496b49773 (diff) | |
KVM: Introduce direct MSI message injection for in-kernel irqchips
Currently, MSI messages can only be injected to in-kernel irqchips by
defining a corresponding IRQ route for each message. This is not only
unhandy if the MSI messages are generated "on the fly" by user space,
IRQ routes are a limited resource that user space has to manage
carefully.
By providing a direct injection path, we can both avoid using up limited
resources and simplify the necessary steps for user land.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'Documentation/virtual/kvm')
| -rw-r--r-- | Documentation/virtual/kvm/api.txt | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index 81ff39f6248..a1552210b16 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt | |||
| @@ -1689,6 +1689,27 @@ where the guest will clear the flag: when the soft lockup watchdog timer resets | |||
| 1689 | itself or when a soft lockup is detected. This ioctl can be called any time | 1689 | itself or when a soft lockup is detected. This ioctl can be called any time |
| 1690 | after pausing the vcpu, but before it is resumed. | 1690 | after pausing the vcpu, but before it is resumed. |
| 1691 | 1691 | ||
| 1692 | 4.71 KVM_SIGNAL_MSI | ||
| 1693 | |||
| 1694 | Capability: KVM_CAP_SIGNAL_MSI | ||
| 1695 | Architectures: x86 | ||
| 1696 | Type: vm ioctl | ||
| 1697 | Parameters: struct kvm_msi (in) | ||
| 1698 | Returns: >0 on delivery, 0 if guest blocked the MSI, and -1 on error | ||
| 1699 | |||
| 1700 | Directly inject a MSI message. Only valid with in-kernel irqchip that handles | ||
| 1701 | MSI messages. | ||
| 1702 | |||
| 1703 | struct kvm_msi { | ||
| 1704 | __u32 address_lo; | ||
| 1705 | __u32 address_hi; | ||
| 1706 | __u32 data; | ||
| 1707 | __u32 flags; | ||
| 1708 | __u8 pad[16]; | ||
| 1709 | }; | ||
| 1710 | |||
| 1711 | No flags are defined so far. The corresponding field must be 0. | ||
| 1712 | |||
| 1692 | 5. The kvm_run structure | 1713 | 5. The kvm_run structure |
| 1693 | 1714 | ||
| 1694 | Application code obtains a pointer to the kvm_run structure by | 1715 | Application code obtains a pointer to the kvm_run structure by |
