Message ID | 1464604298-16739-17-git-send-email-peterx@redhat.com |
---|---|
State | New |
Headers | show |
On 2016-05-30 12:31, Peter Xu wrote: > One flag is added to specify whether to enable IR 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,intremap=on Maybe it's time to move on to Marcel's "-device iommu" patches and convert this switch to a device property directly. Or what is the plan? Jan
On Mon, May 30, 2016 at 02:43:22PM +0200, Jan Kiszka wrote: > On 2016-05-30 12:31, Peter Xu wrote: > > One flag is added to specify whether to enable IR 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,intremap=on > > Maybe it's time to move on to Marcel's "-device iommu" patches and > convert this switch to a device property directly. Or what is the plan? I just kept everything as it is since I do not know whether I should rebase to Marcel's interface now. Anyway, I can do it in future versions as long as we settle it down. Marcel, do you have any suggestion? -- peterx
On 05/30/2016 04:33 PM, Peter Xu wrote: > On Mon, May 30, 2016 at 02:43:22PM +0200, Jan Kiszka wrote: >> On 2016-05-30 12:31, Peter Xu wrote: >>> One flag is added to specify whether to enable IR 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,intremap=on >> >> Maybe it's time to move on to Marcel's "-device iommu" patches and >> convert this switch to a device property directly. Or what is the plan? > > I just kept everything as it is since I do not know whether I should > rebase to Marcel's interface now. Anyway, I can do it in future > versions as long as we settle it down. > > Marcel, do you have any suggestion? > In a few days we will have a full version, but you can rebase on it now if you plan a re-spin before that. Thanks, Marcel > -- peterx >
diff --git a/hw/core/machine.c b/hw/core/machine.c index 98471a7..41d6a95 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -314,6 +314,20 @@ static void machine_set_iommu(Object *obj, bool value, Error **errp) ms->iommu = value; } +static bool machine_get_intremap(Object *obj, Error **errp) +{ + MachineState *ms = MACHINE(obj); + + return ms->iommu_intr; +} + +static void machine_set_intremap(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); @@ -501,6 +515,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, "intremap", machine_get_intremap, + machine_set_intremap, NULL); + object_property_set_description(obj, "intremap", + "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);
One flag is added to specify whether to enable IR 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,intremap=on To be more clear, the following command: $ qemu-system-x86_64 -M q35,iommu=on Will enable IOMMU only, without interrupt remapping support. Currently, Intel IOMMU IR only support kernel-irqchip={off|split}. We need to specify either of it in -M as well. Signed-off-by: Peter Xu <peterx@redhat.com> --- hw/core/machine.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)