From: Robin Murphy <robin.murphy@arm.com> To: joro@8bytes.org, will@kernel.org Cc: iommu@lists.linux-foundation.org, suravee.suthikulpanit@amd.com, baolu.lu@linux.intel.com, willy@infradead.org, linux-kernel@vger.kernel.org, john.garry@huawei.com Subject: [PATCH 0/9] iommu: Refactor flush queues into iommu-dma Date: Tue, 23 Nov 2021 14:10:35 +0000 [thread overview] Message-ID: <cover.1637671820.git.robin.murphy@arm.com> (raw) Hi all, As promised, this series cleans up the flush queue code and streamlines it directly into iommu-dma. Since we no longer have per-driver DMA ops implementations, a lot of the abstraction is now no longer necessary, so there's a nice degree of simplification in the process. Un-abstracting the queued page freeing mechanism is also the perfect opportunity to revise which struct page fields we use so we can be better-behaved from the MM point of view, thanks to Matthew. These changes should also make it viable to start using the gather freelist in io-pgtable-arm, and eliminate some more synchronous invalidations from the normal flow there, but that is proving to need a bit more careful thought than I have time for in this cycle, so I've parked that again for now and will revisit it in the new year. For convenience, branch at: https://gitlab.arm.com/linux-arm/linux-rm/-/tree/iommu/iova I've build-tested for x86_64, and boot-tested arm64 to the point of confirming that put_pages_list() gets passed a valid empty list when flushing, while everything else still works. Cheers, Robin. Matthew Wilcox (Oracle) (2): iommu/amd: Use put_pages_list iommu/vt-d: Use put_pages_list Robin Murphy (7): gpu: host1x: Add missing DMA API include iommu/iova: Squash entry_dtor abstraction iommu/iova: Squash flush_cb abstraction iommu/amd: Simplify pagetable freeing iommu/iova: Consolidate flush queue code iommu/iova: Move flush queue code to iommu-dma iommu: Move flush queue data into iommu_dma_cookie drivers/gpu/host1x/bus.c | 1 + drivers/iommu/amd/io_pgtable.c | 116 ++++++-------- drivers/iommu/dma-iommu.c | 266 +++++++++++++++++++++++++++------ drivers/iommu/intel/iommu.c | 89 ++++------- drivers/iommu/iova.c | 200 ------------------------- include/linux/iommu.h | 3 +- include/linux/iova.h | 69 +-------- 7 files changed, 295 insertions(+), 449 deletions(-) -- 2.28.0.dirty
WARNING: multiple messages have this Message-ID (diff)
From: Robin Murphy <robin.murphy@arm.com> To: joro@8bytes.org, will@kernel.org Cc: linux-kernel@vger.kernel.org, willy@infradead.org, iommu@lists.linux-foundation.org Subject: [PATCH 0/9] iommu: Refactor flush queues into iommu-dma Date: Tue, 23 Nov 2021 14:10:35 +0000 [thread overview] Message-ID: <cover.1637671820.git.robin.murphy@arm.com> (raw) Hi all, As promised, this series cleans up the flush queue code and streamlines it directly into iommu-dma. Since we no longer have per-driver DMA ops implementations, a lot of the abstraction is now no longer necessary, so there's a nice degree of simplification in the process. Un-abstracting the queued page freeing mechanism is also the perfect opportunity to revise which struct page fields we use so we can be better-behaved from the MM point of view, thanks to Matthew. These changes should also make it viable to start using the gather freelist in io-pgtable-arm, and eliminate some more synchronous invalidations from the normal flow there, but that is proving to need a bit more careful thought than I have time for in this cycle, so I've parked that again for now and will revisit it in the new year. For convenience, branch at: https://gitlab.arm.com/linux-arm/linux-rm/-/tree/iommu/iova I've build-tested for x86_64, and boot-tested arm64 to the point of confirming that put_pages_list() gets passed a valid empty list when flushing, while everything else still works. Cheers, Robin. Matthew Wilcox (Oracle) (2): iommu/amd: Use put_pages_list iommu/vt-d: Use put_pages_list Robin Murphy (7): gpu: host1x: Add missing DMA API include iommu/iova: Squash entry_dtor abstraction iommu/iova: Squash flush_cb abstraction iommu/amd: Simplify pagetable freeing iommu/iova: Consolidate flush queue code iommu/iova: Move flush queue code to iommu-dma iommu: Move flush queue data into iommu_dma_cookie drivers/gpu/host1x/bus.c | 1 + drivers/iommu/amd/io_pgtable.c | 116 ++++++-------- drivers/iommu/dma-iommu.c | 266 +++++++++++++++++++++++++++------ drivers/iommu/intel/iommu.c | 89 ++++------- drivers/iommu/iova.c | 200 ------------------------- include/linux/iommu.h | 3 +- include/linux/iova.h | 69 +-------- 7 files changed, 295 insertions(+), 449 deletions(-) -- 2.28.0.dirty _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
next reply other threads:[~2021-11-23 14:10 UTC|newest] Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-11-23 14:10 Robin Murphy [this message] 2021-11-23 14:10 ` [PATCH 0/9] iommu: Refactor flush queues into iommu-dma Robin Murphy 2021-11-23 14:10 ` [PATCH 1/9] gpu: host1x: Add missing DMA API include Robin Murphy 2021-11-23 14:10 ` Robin Murphy 2021-11-23 14:10 ` Robin Murphy 2021-11-24 14:05 ` Robin Murphy 2021-11-24 14:05 ` Robin Murphy 2021-11-24 14:05 ` Robin Murphy 2021-12-06 12:20 ` Joerg Roedel 2021-12-06 12:20 ` Joerg Roedel 2021-12-06 12:20 ` Joerg Roedel 2021-11-23 14:10 ` [PATCH 2/9] iommu/iova: Squash entry_dtor abstraction Robin Murphy 2021-11-23 14:10 ` Robin Murphy 2021-11-23 14:10 ` [PATCH 3/9] iommu/iova: Squash flush_cb abstraction Robin Murphy 2021-11-23 14:10 ` Robin Murphy 2021-11-23 14:10 ` [PATCH 4/9] iommu/amd: Simplify pagetable freeing Robin Murphy 2021-11-23 14:10 ` Robin Murphy 2021-12-06 12:40 ` Joerg Roedel 2021-12-06 12:40 ` Joerg Roedel 2021-12-06 13:28 ` Robin Murphy 2021-12-06 13:28 ` Robin Murphy 2021-11-23 14:10 ` [PATCH 5/9] iommu/amd: Use put_pages_list Robin Murphy 2021-11-23 14:10 ` Robin Murphy 2021-11-23 14:10 ` [PATCH 6/9] iommu/vt-d: " Robin Murphy 2021-11-23 14:10 ` Robin Murphy 2021-11-23 14:10 ` [PATCH 7/9] iommu/iova: Consolidate flush queue code Robin Murphy 2021-11-23 14:10 ` Robin Murphy 2021-11-23 14:10 ` [PATCH 8/9] iommu/iova: Move flush queue code to iommu-dma Robin Murphy 2021-11-23 14:10 ` Robin Murphy 2021-11-23 14:10 ` [PATCH 9/9] iommu: Move flush queue data into iommu_dma_cookie Robin Murphy 2021-11-23 14:10 ` Robin Murphy 2021-11-23 22:40 ` kernel test robot 2021-11-23 22:40 ` kernel test robot 2021-11-23 22:40 ` kernel test robot 2021-11-24 17:25 ` John Garry 2021-11-24 17:25 ` John Garry via iommu 2021-11-24 18:00 ` Robin Murphy 2021-11-24 18:00 ` Robin Murphy 2021-11-24 17:21 ` [PATCH 0/9] iommu: Refactor flush queues into iommu-dma John Garry 2021-11-24 17:21 ` John Garry via iommu 2021-11-24 18:33 ` Robin Murphy 2021-11-24 18:33 ` Robin Murphy
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=cover.1637671820.git.robin.murphy@arm.com \ --to=robin.murphy@arm.com \ --cc=baolu.lu@linux.intel.com \ --cc=iommu@lists.linux-foundation.org \ --cc=john.garry@huawei.com \ --cc=joro@8bytes.org \ --cc=linux-kernel@vger.kernel.org \ --cc=suravee.suthikulpanit@amd.com \ --cc=will@kernel.org \ --cc=willy@infradead.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: linkBe 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.