[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v8] xen/arm: pci: introduce PCI_PASSTHROUGH Kconfig option


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Stewart Hildebrand <stewart.hildebrand@xxxxxxx>
  • Date: Wed, 23 Jul 2025 18:26:46 -0400
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0M++WxeHxfQ9lbyczn33hS2gtBkeR/8m8aY23YRPBBI=; b=rxJa5MkaLn02E3AZskxIS+mQ8X82R1U8a0ZkwisLAEEstIum3FiErfu4Fq/R2ekyMw6xgFT4+g9dYTfX+ZqsGTFRgXYb8P6j66kXoA0DRyhiWXzeRJy/dfqadasDWemypEWuAddqYzji6NrWdQ+h8Ah3G+ktYB3E4Jlk6EBx8QuQMEktIJVQ0LisUT4UO10LTwJEHCN/bqF8FfgWMhO8xBJgUPq6AA35CyYdrK6ly8ZzxlY24zqBD5qxjhNMuAfIHnFAfldo+K7eQzKmRQWPxtwRRFwOKVlqWzrYEAQpLNPNNHstEYBZAetsqEFnIACjbiPPJV5SDkGIyg0RiFr4BQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=un5lsvK7pQfwWQXyk95C+WRhL4z2O1FywWbGZpotW4jYlv2Gfyul79Rkqk0Ly7G4b089uKau/XXQ0r/MptpaXZ11MMszNSXMozFhyHe4lMSVaqHHpL7jTNzdp24k224GVRezn3VAolt5huTReL0y4m24XHYEmX3BNk3Rv12oq9u4BsQhcLCkacj7cRP/1TWHcgwJ2CpQ3qusAoQ92wPF2LqQ2vs0Lrt54Vh92TduvYy11U89+84UfAp8T2y2BH2IPCZJCvsc3jz1UWZhX+DGlkrSEkfu94JpdZnZg+dR+V6Nwl2arrGY6ynjkbS1qZeMHGICokhShIN7D6ESh7mcxw==
  • Cc: Rahul Singh <rahul.singh@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, "Volodymyr Babchuk" <Volodymyr_Babchuk@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Stefano Stabellini <stefano.stabellini@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Wed, 23 Jul 2025 22:26:58 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

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."



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.