[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/2] i386: Interrupt remapping support for VT-d
From: |
Jan Kiszka |
Subject: |
Re: [Qemu-devel] [PATCH 2/2] i386: Interrupt remapping support for VT-d |
Date: |
Fri, 11 Mar 2016 08:28:02 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
On 2016-03-10 06:28, Peter Xu wrote:
> On Wed, Mar 09, 2016 at 12:58:17AM +0530, Rita Sinha wrote:
>> From: Jan Kiszka <address@hidden>
>>
>> Still a bit hacky, unconditionally enabled (must become opt-in, not
>> available with in-kernel irqchip), not reporting faults properly - but
>> it works! And revealed a Linux bug [1]
>
> If the patch is to be merged finally, shall we better add a
> parameter to disable this feature for people do not need this?
Yes, we need a switch. The original IOMMU in the Q35 chipset doesn't
support IR, and already to be emulation-wise precise, we should allow to
user to turn this off (or on).
> Also, shall we make sure:
>
> - make sure patches' in-reply-to are correct (so that it's in a
> series, as mentioned by Eric before)
> - remove useless lines like "/* printf(...) */"
> - add one-line subject for each patch (possibly)?
> - ...
>
> [...]
>
>> diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c
>> index 566e3d8..f7adc8e 100644
>> --- a/hw/pci-host/q35.c
>> +++ b/hw/pci-host/q35.c
>> @@ -431,6 +431,17 @@ static AddressSpace *q35_host_dma_iommu(PCIBus *bus,
>> void *opaque, int devfn)
>> assert(0 <= devfn && devfn <= VTD_PCI_DEVFN_MAX);
>>
>> vtd_as = vtd_find_add_as(s, bus, devfn);
>> +
>> + memory_region_init_iommu(&vtd_as->iommu, OBJECT(s),
>> + &s->iommu_ops, "intel_iommu", UINT64_MAX);
>> + address_space_init(&vtd_as->as,
>> + &vtd_as->iommu, "intel_iommu");
>> + memory_region_init_io(&vtd_as->int_remap_region, OBJECT(s),
>> + &vtd_int_remap_ops, vtd_as,
>> + "intel_int_remap", UINT64_MAX);
>> + address_space_init(&vtd_as->int_remap_as,
>> + &vtd_as->int_remap_region,
>> + "intel_int_remap");
>
> One more thing... vtd_as->{as|iommu} should have been inited in
> vtd_find_add_as() already.
>
Good point. Logical merge artefact.
Jan
--
Siemens AG, Corporate Technology, CT RDA ITP SES-DE
Corporate Competence Center Embedded Linux