AMD IOMMU [PSARC/2008/561]
Vikram Hegde
Vikram.Hegde at Sun.COM
Thu Sep 4 09:11:22 PDT 2008
Hi,
> Yes. I'd prefer not to "document" the alternative mechanism, since I
> view that as a hack/workaround rather than the correct behavior of
> using the DMA attributes.
How about 3rd party drivers that driver vendors don't want to rev and
re-release solely for this. Shouldn't there be a switch that they can
suggest to customers to use with their existing driver binaries ?
Vikram
Garrett D'Amore wrote:
> Vikram Hegde wrote:
>> Garrett D'Amore wrote:
>>> It would be cooler if this could be dealt with using ordinary DMA
>>> attributes. Won't DDI_DMA_FORCE_PHYSICAL (see the dma_attr_flags
>>> for ddi_dma_attr(9s)) work for this?
>>>
>> Yes, that would work as well and is the preferred and established
>> solution. This flag will be respected by the IOMMU. However, it seems
>> that an alternative mechanism that involves no touching of the driver
>> code is desirable as well. Do you agree ?
>
> Yes. I'd prefer not to "document" the alternative mechanism, since I
> view that as a hack/workaround rather than the correct behavior of
> using the DMA attributes.
>
> -- Garrett
>>
>> Thanks,
>> Vikram
>>> - Garrett
>>>
>>>
>>> Vikram Hegde wrote:
>>>> Hi Kais,
>>>>
>>>> Below is the text I am planning to add to the PSARC case. And yes,
>>>> the disable properties will be a part of this PSARC case.
>>>>
>>>> Vikram
>>>>
>>>> =====================================================================
>>>> Enabling/Disabling the IOMMU
>>>> =============================
>>>> It is recognized that driver or platform developers may not in
>>>> certain cases desire the
>>>> IOMMU to be enabled. To accomodate such needs we propose the
>>>> following global properties
>>>> in the iommu driver.conf file
>>>>
>>>> "global-disable" - can be set to 1 to disable IOMMU platform wide.
>>>> "exclude-list" - list of driver names that want the IOMMU disabled.
>>>> ======================================================================
>>>>
>>>> Vikram
>>>>
>>>> Kais Belgaied wrote:
>>>>> Vikram, Jerry,
>>>>>
>>>>> So, is the ability to disable the IOMMU on a per driver basis in
>>>>> this case's scope?
>>>>> what interface is being proposed for doing this?
>>>>>
>>>>> Jerry, assuming the answer the to first question above is 'yes',
>>>>> the case cannot be in
>>>>> a "closed approved automatic" state while waiting for some of its
>>>>> spec.
>>>>>
>>>>> Kais.
>>>>>
>>>>> On 09/03/08 23:16, Matthew Jacob wrote:
>>>>>> Garrett D'Amore wrote:
>>>>>>> Vikram Hegde wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>>> Abilities to disable the IOMMU as a choice? Performance impact
>>>>>>>>> on various systems and interactions with other projects that
>>>>>>>>> have gone to some length to work within S/G and its
>>>>>>>>> performance characteristics. How will this affect them? Cache
>>>>>>>>> effects? Interactions with some VM work currently being
>>>>>>>>> undertaken?
>>>>>>>>>
>>>>>>>>> I can't imagine such a major change being
>>>>>>>>> closed/approved/automatic.
>>>>>>>> Performance is driver dependant. There is no way a single
>>>>>>>> project team can test the gamut of drivers out there and
>>>>>>>> certify that the IOMMU will give acceptable performance for
>>>>>>>> all needs (which is itself a subjective opinion). We have
>>>>>>>> always planned to provide the ability to disable the IOMMU on a
>>>>>>>> per driver basis. Does that address your performance concerns ?
>>>>>>>
>>>>>>> Actually, for many cases, IOMMU may *improve* performance. This
>>>>>>> is because it will make it easier to satisfy device constraints
>>>>>>> for DMA resources without requiring the use of a bounce buffer
>>>>>>> or dma windows.
>>>>>>
>>>>>> That is almost always the exception now. The other issue IIRC is
>>>>>> the interaction between the IOMMU and memory caches. In many data
>>>>>> movement appliance contexts you use scatter-gather
>>>>>> (scatter-gather in name only- contiguous memory is good) to
>>>>>> physical pages which are never mapped in.
>>>>>>
>>>>>> The main point here is to avoid a situation that we're currently
>>>>>> in now with respect MSI-X and Interrupt/CPU binding and make sure
>>>>>> that there are sufficient control surfaces to allow for a broad
>>>>>> range of possible implementation choices.
>>>>>>
>>>>>>>
>>>>>>> That said, drivers which assume that setup and tear down of DMA
>>>>>>> is "cheap" may take a perf. hit when using an IOMMU. This is
>>>>>>> already the case for SPARC systems, btw.
>>>>>>
>>>>>> Except for those (ancient) ones that used 36-bit MBus physical
>>>>>> addresses and bypassed the IOMMU.
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>
--
===============================================================================
thread(n):projecting helical rib by which parts can be screwed together
===============================================================================
More information about the opensolaris-arc
mailing list