From: Jason Gunthorpe <jgg@nvidia.com>
To: Lu Baolu <baolu.lu@linux.intel.com>
Cc: iommu@lists.linux.dev, Joerg Roedel <joro@8bytes.org>,
Christoph Hellwig <hch@infradead.org>,
Kevin Tian <kevin.tian@intel.com>, Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 0/6] iommu: Extend changing default domain to normal group
Date: Fri, 17 Feb 2023 11:47:52 -0400 [thread overview]
Message-ID: <Y++hqGY3qg7EKZLY@nvidia.com> (raw)
In-Reply-To: <20230217094736.159005-1-baolu.lu@linux.intel.com>
On Fri, Feb 17, 2023 at 05:47:30PM +0800, Lu Baolu wrote:
> The IOMMU group sysfs interface allows users to change the default
> domain of a group. The current implementation uses device_lock() to make
> sure that the devices in the group are not bound to any driver and won't
> be bound during the process of changing the default domain. In order to
> avoid a possible deadlock caused by lock order of device_lock and
> group->mutex, it limits the functionality to singleton groups only.
>
> The recently implemented DMA ownership framework can be applied here to
> replace device_lock(). In addition, use group->mutex to ensure that the
> iommu ops of the devices is always valid during the process of changing
> default domain.
>
> With above replacement and enhancement, the device_lock() could be
> removed and the singleton-group-only limitation could be removed.
>
> The whole series is also available on github:
> https://github.com/LuBaolu/intel-iommu/commits/iommu-sysfs-default-domain-extension-v2
>
> This series is on top of below series from Robin,
> https://lore.kernel.org/linux-iommu/cover.1674753627.git.robin.murphy@arm.com/
>
> Please help to review and suggest.
Given the overall situation, I think my suggestion to use
arm_iommu_release_device() might be more short term practical.
Jason
next prev parent reply other threads:[~2023-02-17 15:47 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-17 9:47 [PATCH v2 0/6] iommu: Extend changing default domain to normal group Lu Baolu
2023-02-17 9:47 ` [PATCH v2 1/6] ARM/dma-mapping: Remove iommu_detach_device() Lu Baolu
2023-02-17 15:39 ` Jason Gunthorpe
2023-02-18 6:59 ` Baolu Lu
2023-02-18 15:58 ` Jason Gunthorpe
2023-02-20 14:21 ` Robin Murphy
2023-02-17 9:47 ` [PATCH v2 2/6] iommu: Split iommu_group_remove_device() into helpers Lu Baolu
2023-02-17 9:47 ` [PATCH v2 3/6] iommu: Same critical region for device release and removal Lu Baolu
2023-02-17 15:40 ` Jason Gunthorpe
2023-02-18 7:29 ` Baolu Lu
2023-02-21 1:13 ` Jason Gunthorpe
2023-02-17 9:47 ` [PATCH v2 4/6] iommu: Move lock from iommu_change_dev_def_domain() to its caller Lu Baolu
2023-02-17 9:47 ` [PATCH v2 5/6] iommu: Replace device_lock() with group->mutex Lu Baolu
2023-02-17 9:47 ` [PATCH v2 6/6] iommu: Cleanup iommu_change_dev_def_domain() Lu Baolu
2023-02-17 15:47 ` Jason Gunthorpe [this message]
2023-02-18 7:31 ` [PATCH v2 0/6] iommu: Extend changing default domain to normal group Baolu Lu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y++hqGY3qg7EKZLY@nvidia.com \
--to=jgg@nvidia.com \
--cc=baolu.lu@linux.intel.com \
--cc=hch@infradead.org \
--cc=iommu@lists.linux.dev \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=robin.murphy@arm.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.