[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 01/13] q35: add "int-remap" flag to enable intr
From: |
Peter Xu |
Subject: |
[Qemu-devel] [PATCH v2 01/13] q35: add "int-remap" flag to enable intr |
Date: |
Mon, 11 Apr 2016 17:19:11 +0800 |
One flag is added to specify whether to enable INTR for emulated
IOMMU. By default, interrupt remapping is not supportted. To enable it,
we should specify something like:
$ qemu-system-x86_64 -M q35,iommu=on,intr=on
To be more clear, the following command:
$ qemu-system-x86_64 -M q35,iommu=on
Will enable IOMMU only, without interrupt remapping support.
Signed-off-by: Peter Xu <address@hidden>
---
hw/core/machine.c | 21 +++++++++++++++++++++
include/hw/boards.h | 1 +
2 files changed, 22 insertions(+)
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 6dbbc85..b48fcaf 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -300,6 +300,20 @@ static void machine_set_iommu(Object *obj, bool value,
Error **errp)
ms->iommu = value;
}
+static bool machine_get_intr(Object *obj, Error **errp)
+{
+ MachineState *ms = MACHINE(obj);
+
+ return ms->iommu_intr;
+}
+
+static void machine_set_intr(Object *obj, bool value, Error **errp)
+{
+ MachineState *ms = MACHINE(obj);
+
+ ms->iommu_intr = value;
+}
+
static void machine_set_suppress_vmdesc(Object *obj, bool value, Error **errp)
{
MachineState *ms = MACHINE(obj);
@@ -382,6 +396,7 @@ static void machine_initfn(Object *obj)
ms->kvm_shadow_mem = -1;
ms->dump_guest_core = true;
ms->mem_merge = true;
+ ms->iommu_intr = false;
object_property_add_str(obj, "accel",
machine_get_accel, machine_set_accel, NULL);
@@ -478,6 +493,12 @@ static void machine_initfn(Object *obj)
object_property_set_description(obj, "iommu",
"Set on/off to enable/disable Intel IOMMU
(VT-d)",
NULL);
+ object_property_add_bool(obj, "intr", machine_get_intr,
+ machine_set_intr, NULL);
+ object_property_set_description(obj, "intr",
+ "Set on/off to enable/disable IOMMU"
+ " interrupt remapping",
+ NULL);
object_property_add_bool(obj, "suppress-vmdesc",
machine_get_suppress_vmdesc,
machine_set_suppress_vmdesc, NULL);
diff --git a/include/hw/boards.h b/include/hw/boards.h
index aad5f2a..5e15410 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -151,6 +151,7 @@ struct MachineState {
bool igd_gfx_passthru;
char *firmware;
bool iommu;
+ bool iommu_intr;
bool suppress_vmdesc;
bool enforce_config_section;
--
2.4.3
- [Qemu-devel] [PATCH v2 00/13] IOMMU: Enable interrupt remapping for Intel IOMMU, Peter Xu, 2016/04/11
- [Qemu-devel] [PATCH v2 01/13] q35: add "int-remap" flag to enable intr,
Peter Xu <=
- [Qemu-devel] [PATCH v2 02/13] acpi: enable INTR for DMAR report structure, Peter Xu, 2016/04/11
- [Qemu-devel] [PATCH v2 03/13] intel_iommu: allow queued invalidation for IR, Peter Xu, 2016/04/11
- [Qemu-devel] [PATCH v2 04/13] intel_iommu: set IR bit for ECAP register, Peter Xu, 2016/04/11
- [Qemu-devel] [PATCH v2 05/13] acpi: add DMAR scope definition for root IOAPIC, Peter Xu, 2016/04/11
- [Qemu-devel] [PATCH v2 06/13] intel_iommu: define interrupt remap table addr register, Peter Xu, 2016/04/11
- [Qemu-devel] [PATCH v2 07/13] intel_iommu: handle interrupt remap enable, Peter Xu, 2016/04/11
- [Qemu-devel] [PATCH v2 08/13] intel_iommu: define several structs for IOMMU IR, Peter Xu, 2016/04/11
- [Qemu-devel] [PATCH v2 09/13] intel_iommu: provide helper function vtd_get_iommu, Peter Xu, 2016/04/11
- [Qemu-devel] [PATCH v2 10/13] ioapic-common: add iommu for IOAPICCommonState, Peter Xu, 2016/04/11
- [Qemu-devel] [PATCH v2 11/13] intel_iommu: add IR translation faults defines, Peter Xu, 2016/04/11