From: Joerg Roedel <joro@8bytes.org>
To: iommu@lists.linux-foundation.org
Cc: David Woodhouse <dwmw2@infradead.org>,
Alex Williamson <alex.williamson@redhat.com>,
linux-kernel@vger.kernel.org, Joerg Roedel <joro@8bytes.org>,
jroedel@suse.de
Subject: [PATCH 00/26] iommu/vt-d: Clean up device<->domain attachment
Date: Wed, 5 Aug 2015 17:18:31 +0200 [thread overview]
Message-ID: <1438787937-7340-1-git-send-email-joro@8bytes.org> (raw)
Hi,
here is a (bigger than I expected) patch-set which cleans up
the code to attach and detach domains to iommus in the Intel
VT-d driver.
In particular, the patch-set does:
* Remove special cases around the handling of
various domain types and align their handling
where possible
* Rework the data structures for the domain<->iommu
relation to better match with its usage. This
allowed to get rid of a couple of search loops.
* Make the domain attachment and detachment path
to/from an iommu more symmetric. This makes the
code easier to understand and maintain.
* Rework and simplify the locking around the
domain<->iommu attachment/detachment path.
A few rough edges and special cases are still left, but I
expect that these will be removed with the conversion to
default domains.
I tested the code with some additional debug code to make
sure that domain and domain-id allocation/deallocation works
as expected.
As test I booted a kernel with the patches (with and
without iommu=pt) and ran a KVM guest with devices assigned.
No lockdep warning popped up and the debug output was also
fine. But of course this is no guarantee that there are no
issues left, so I am happy about feedback. Please review!
Thanks,
Joerg
Joerg Roedel (26):
iommu/vt-d: Keep track of per-iommu domain ids
iommu/vt-d: Add access functions for iommu->domains
iommu/vt-d: Split up iommu->domains array
iommu/vt-d: Get rid of iommu_attach_vm_domain()
iommu/vt-d: Calculate translation in domain_context_mapping_one
iommu/vt-d: Simplify domain_context_mapping_one
iommu/vt-d: Pass dmar_domain directly into iommu_flush_iotlb_psi
iommu/vt-d: Don't pre-allocate domain ids for si_domain
iommu/vt-d: Kill dmar_domain->id
iommu/vt-d: Replace iommu_bmp with a refcount
iommu/vt-d: Simplify io/tlb flushing in intel_iommu_unmap
iommu/vt-d: Simplify domain_remove_one_dev_info()
iommu/vt-d: Simplify domain_remove_dev_info()
iommu/vt-d: Move context-mapping into dmar_insert_dev_info
iommu/vt-d: Rename dmar_insert_dev_info()
iommu/vt-d: Rename domain_remove_one_dev_info()
iommu/vt-d: Rename iommu_detach_dependent_devices()
iommu/vt-d: Pass an iommu pointer to domain_init()
iommu/vt-d: Establish domain<->iommu link in dmar_insert_one_dev_info
iommu/vt-d: Unify domain->iommu attach/detachment
iommu/vt-d: Only call domain_remove_one_dev_info to detach old domain
iommu/vt-d: Get rid of domain->iommu_lock
iommu/vt-d: Remove dmar_global_lock from device_notifier
iommu/vt-d: Pass device_domain_info to __dmar_remove_one_dev_info
iommu/vt-d: Only insert alias dev_info if there is an alias
iommu/vt-d: Avoid duplicate device_domain_info structures
drivers/iommu/intel-iommu.c | 664 ++++++++++++++++++++------------------------
include/linux/intel-iommu.h | 2 +-
2 files changed, 295 insertions(+), 371 deletions(-)
--
1.9.1
next reply other threads:[~2015-08-05 15:19 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-05 15:18 Joerg Roedel [this message]
2015-08-05 15:18 ` [PATCH 01/26] iommu/vt-d: Keep track of per-iommu domain ids Joerg Roedel
2015-08-06 19:19 ` Alex Williamson
2015-08-07 11:07 ` Joerg Roedel
2015-08-05 15:18 ` [PATCH 02/26] iommu/vt-d: Add access functions for iommu->domains Joerg Roedel
2015-08-05 15:18 ` [PATCH 03/26] iommu/vt-d: Split up iommu->domains array Joerg Roedel
2015-08-06 19:20 ` Alex Williamson
2015-08-07 11:11 ` Joerg Roedel
2015-08-05 15:18 ` [PATCH 04/26] iommu/vt-d: Get rid of iommu_attach_vm_domain() Joerg Roedel
2015-08-05 15:18 ` [PATCH 05/26] iommu/vt-d: Calculate translation in domain_context_mapping_one Joerg Roedel
2015-08-06 19:20 ` Alex Williamson
2015-08-07 11:13 ` Joerg Roedel
2015-08-05 15:18 ` [PATCH 06/26] iommu/vt-d: Simplify domain_context_mapping_one Joerg Roedel
2015-08-05 15:18 ` [PATCH 07/26] iommu/vt-d: Pass dmar_domain directly into iommu_flush_iotlb_psi Joerg Roedel
2015-08-05 15:18 ` [PATCH 08/26] iommu/vt-d: Don't pre-allocate domain ids for si_domain Joerg Roedel
2015-08-05 15:18 ` [PATCH 09/26] iommu/vt-d: Kill dmar_domain->id Joerg Roedel
2015-08-05 15:18 ` [PATCH 10/26] iommu/vt-d: Replace iommu_bmp with a refcount Joerg Roedel
2015-08-06 19:19 ` Alex Williamson
2015-08-07 11:17 ` Joerg Roedel
2015-08-05 15:18 ` [PATCH 11/26] iommu/vt-d: Simplify io/tlb flushing in intel_iommu_unmap Joerg Roedel
2015-08-05 15:18 ` [PATCH 12/26] iommu/vt-d: Simplify domain_remove_one_dev_info() Joerg Roedel
2015-08-05 15:18 ` [PATCH 13/26] iommu/vt-d: Simplify domain_remove_dev_info() Joerg Roedel
2015-08-05 15:18 ` [PATCH 14/26] iommu/vt-d: Move context-mapping into dmar_insert_dev_info Joerg Roedel
2015-08-05 15:18 ` [PATCH 15/26] iommu/vt-d: Rename dmar_insert_dev_info() Joerg Roedel
2015-08-05 15:18 ` [PATCH 16/26] iommu/vt-d: Rename domain_remove_one_dev_info() Joerg Roedel
2015-08-05 15:18 ` [PATCH 17/26] iommu/vt-d: Rename iommu_detach_dependent_devices() Joerg Roedel
2015-08-05 15:18 ` [PATCH 18/26] iommu/vt-d: Pass an iommu pointer to domain_init() Joerg Roedel
2015-08-05 15:18 ` [PATCH 19/26] iommu/vt-d: Establish domain<->iommu link in dmar_insert_one_dev_info Joerg Roedel
2015-08-05 15:18 ` [PATCH 20/26] iommu/vt-d: Unify domain->iommu attach/detachment Joerg Roedel
2015-08-05 15:18 ` [PATCH 21/26] iommu/vt-d: Only call domain_remove_one_dev_info to detach old domain Joerg Roedel
2015-08-05 15:18 ` [PATCH 22/26] iommu/vt-d: Get rid of domain->iommu_lock Joerg Roedel
2015-08-05 15:18 ` [PATCH 23/26] iommu/vt-d: Remove dmar_global_lock from device_notifier Joerg Roedel
2015-08-05 15:18 ` [PATCH 24/26] iommu/vt-d: Pass device_domain_info to __dmar_remove_one_dev_info Joerg Roedel
2015-08-05 15:18 ` [PATCH 25/26] iommu/vt-d: Only insert alias dev_info if there is an alias Joerg Roedel
2015-08-05 15:18 ` [PATCH 26/26] iommu/vt-d: Avoid duplicate device_domain_info structures Joerg Roedel
2015-08-06 19:19 ` [PATCH 00/26] iommu/vt-d: Clean up device<->domain attachment Alex Williamson
2015-08-07 11:22 ` Joerg Roedel
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=1438787937-7340-1-git-send-email-joro@8bytes.org \
--to=joro@8bytes.org \
--cc=alex.williamson@redhat.com \
--cc=dwmw2@infradead.org \
--cc=iommu@lists.linux-foundation.org \
--cc=jroedel@suse.de \
--cc=linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox