On 24.07.2025 00:26, Stewart Hildebrand wrote:
> On 7/23/25 18:16, Stewart Hildebrand wrote:
>> On 7/23/25 10:59, Jan Beulich wrote:
>>> On 23.07.2025 16:26, Stewart Hildebrand wrote:
>>>> On 7/23/25 06:18, Jan Beulich wrote:
>>>>> On 13.06.2025 17:17, Stewart Hildebrand wrote:
>>>>>> --- a/xen/arch/arm/Kconfig
>>>>>> +++ b/xen/arch/arm/Kconfig
>>>>>> @@ -8,6 +8,8 @@ config ARM_64
>>>>>>          depends on !ARM_32
>>>>>>          select 64BIT
>>>>>>          select HAS_FAST_MULTIPLY
>>>>>> +        select HAS_VPCI_GUEST_SUPPORT if PCI_PASSTHROUGH
>>>>>> +        select HAS_PASSTHROUGH if PCI_PASSTHROUGH
>>>>>
>>>>> As I just learned, this change (or maybe it was the "select HAS_PCI"
>>>>> further down) has exposed the quarantining Kconfig option prompt, which
>>>>> (aiui) is entirely meaningless on Arm. IOW I think further adjustments
>>>>> are necessary.
>>>>
>>>> Not entirely meaningless - the choice between "none" and "basic" still
>>>> seems relevant. Just "scratch page" quarantining hasn't been implemented
>>>> in any of the Arm iommu drivers.
>>>
>>> Is there support for "basic"? For x86, most of the involved code lives
>>> in the vendor-specific drivers, and I can't find anything related in
>>> Arm's. Note in particular the hook iommu_quarantine_dev_init() calls,
>>> which isn't provided by any of the Arm drivers afaict.
>>
>> Quoting xen/drivers/passthrough/Kconfig IOMMU_QUARANTINE_* help text:
>>
>> "... basic form, all in-flight DMA will simply be forced to encounter
>> IOMMU faults."
>>
>> My understanding of "basic" is that after destruction of a domU with a
>> PCI device assigned, the PCI device gets assigned to domIO. We have
>> special casing for ( d == dom_io ) in some instances, but otherwise it
>> has relatively little to do with the individual iommu drivers. I believe
>> assigning to domIO should be enough for the Arm iommus to generate
>> faults, since the iommu identifies the PCI device's DMA via sideband
>> information (AXI stream ID).
> 
> Oh, and also note the commit messages in
> 63919fc4d1ca ("xen/arm: smmuv3: Add PCI devices support for SMMUv3")
> and
> ca8f6ffeb6e3 ("xen/arm: smmuv2: Add PCI devices support for SMMUv2")
> "Implement basic quarantining."

I'm fine with the proposed adjustment if things work on Arm. I'll demand
an Arm maintainer ack then though, I think.

Jan

Reply via email to