IOMMU Archive on lore.kernel.org
 help / color / Atom feed
* [GIT PULL] iommu/arm-smmu: Big batch of updates for 5.4
@ 2019-08-23 14:54 Will Deacon
  2019-08-28 21:42 ` Will Deacon
  0 siblings, 1 reply; 4+ messages in thread
From: Will Deacon @ 2019-08-23 14:54 UTC (permalink / raw)
  To: joro; +Cc: jean-philippe, iommu, robin.murphy

Hi Joerg,

Please pull these ARM SMMU updates for 5.4. The branch is based on the
for-joerg/batched-unmap branch that you pulled into iommu/core already
because I didn't want to rebase everything onto -rc3. The pull request
was generated against iommu/core.

There's a lot of code here, but the headlines are:

  * Complete refactoring of arm-smmu.c to allow for implementation-specific
    quirks, errata and general weirdness outside of the core architecture
    support code.

  * Rework of the SMMUv3 ATS support, after it was found to be broken.
    Since it's a pretty niche thing for us right now, the support is
    effectively reverted for -stable kernels.

  * New algorithm for submitting commands to the SMMUv3 command queue
    which removes the need for a spinlock and reduces CPU usage under
    heavy I/O loads.

There's some ongoing work to extend io-pgtable to be able to deal with
high virtual address ranges but that's not quite there yet and I hope
to queue it for 5.5 instead.

Any problems, just shout (although it's a public holiday on Monday in
the UK, so you'll have to shout very loudly indeed).

Cheers,

Will

--->8

The following changes since commit 3951c41af4a65ba418e6b1b973d398552bedb84f:

  iommu/io-pgtable: Pass struct iommu_iotlb_gather to ->tlb_add_page() (2019-07-29 17:22:59 +0100)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git for-joerg/arm-smmu/updates

for you to fetch changes up to 1554240ff864da9eb99e2233d3faf191c567c47a:

  Merge branches 'for-joerg/arm-smmu/smmu-v2' and 'for-joerg/arm-smmu/smmu-v3' into for-joerg/arm-smmu/updates (2019-08-23 15:05:45 +0100)

----------------------------------------------------------------
Robin Murphy (18):
      iommu/arm-smmu: Mask TLBI address correctly
      iommu/qcom: Mask TLBI addresses correctly
      iommu/arm-smmu: Convert GR0 registers to bitfields
      iommu/arm-smmu: Convert GR1 registers to bitfields
      iommu/arm-smmu: Convert context bank registers to bitfields
      iommu/arm-smmu: Rework cb_base handling
      iommu/arm-smmu: Split arm_smmu_tlb_inv_range_nosync()
      iommu/arm-smmu: Get rid of weird "atomic" write
      iommu/arm-smmu: Abstract GR1 accesses
      iommu/arm-smmu: Abstract context bank accesses
      iommu/arm-smmu: Abstract GR0 accesses
      iommu/arm-smmu: Rename arm-smmu-regs.h
      iommu/arm-smmu: Add implementation infrastructure
      iommu/arm-smmu: Move Secure access quirk to implementation
      iommu/arm-smmu: Add configuration implementation hook
      iommu/arm-smmu: Add reset implementation hook
      iommu/arm-smmu: Add context init implementation hook
      iommu/arm-smmu: Ensure 64-bit I/O accessors are available on 32-bit CPU

Will Deacon (16):
      iommu/arm-smmu-v3: Separate s/w and h/w views of prod and cons indexes
      iommu/arm-smmu-v3: Drop unused 'q' argument from Q_OVF macro
      iommu/arm-smmu-v3: Move low-level queue fields out of arm_smmu_queue
      iommu/arm-smmu-v3: Operate directly on low-level queue where possible
      iommu/arm-smmu-v3: Reduce contention during command-queue insertion
      iommu/arm-smmu-v3: Defer TLB invalidation until ->iotlb_sync()
      iommu/arm-smmu: Make private implementation details static
      iommu/arm-smmu-v3: Document ordering guarantees of command insertion
      iommu/arm-smmu-v3: Disable detection of ATS and PRI
      iommu/arm-smmu-v3: Remove boolean bitfield for 'ats_enabled' flag
      iommu/arm-smmu-v3: Don't issue CMD_SYNC for zero-length invalidations
      iommu/arm-smmu-v3: Rework enabling/disabling of ATS for PCI masters
      iommu/arm-smmu-v3: Fix ATC invalidation ordering wrt main TLBs
      iommu/arm-smmu-v3: Avoid locking on invalidation path when not using ATS
      Revert "iommu/arm-smmu-v3: Disable detection of ATS and PRI"
      Merge branches 'for-joerg/arm-smmu/smmu-v2' and 'for-joerg/arm-smmu/smmu-v3' into for-joerg/arm-smmu/updates

 MAINTAINERS                   |   3 +-
 drivers/iommu/Makefile        |   2 +-
 drivers/iommu/arm-smmu-impl.c | 174 ++++++++
 drivers/iommu/arm-smmu-regs.h | 210 ----------
 drivers/iommu/arm-smmu-v3.c   | 945 +++++++++++++++++++++++++++++++-----------
 drivers/iommu/arm-smmu.c      | 579 ++++++++------------------
 drivers/iommu/arm-smmu.h      | 402 ++++++++++++++++++
 drivers/iommu/qcom_iommu.c    |  17 +-
 8 files changed, 1482 insertions(+), 850 deletions(-)
 create mode 100644 drivers/iommu/arm-smmu-impl.c
 delete mode 100644 drivers/iommu/arm-smmu-regs.h
 create mode 100644 drivers/iommu/arm-smmu.h
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [GIT PULL] iommu/arm-smmu: Big batch of updates for 5.4
  2019-08-23 14:54 [GIT PULL] iommu/arm-smmu: Big batch of updates for 5.4 Will Deacon
@ 2019-08-28 21:42 ` Will Deacon
  2019-08-30 10:29   ` Joerg Roedel
  0 siblings, 1 reply; 4+ messages in thread
From: Will Deacon @ 2019-08-28 21:42 UTC (permalink / raw)
  To: joro; +Cc: jean-philippe, iommu, robin.murphy

Hi Joerg,

On Fri, Aug 23, 2019 at 03:54:40PM +0100, Will Deacon wrote:
> Please pull these ARM SMMU updates for 5.4. The branch is based on the
> for-joerg/batched-unmap branch that you pulled into iommu/core already
> because I didn't want to rebase everything onto -rc3. The pull request
> was generated against iommu/core.

Just a gentle nudge on this pull request, since it would be nice to have
it sit in -next for a bit before the merge window opens.

Please let me know if you need anything more from me.

Cheers,

Will
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [GIT PULL] iommu/arm-smmu: Big batch of updates for 5.4
  2019-08-28 21:42 ` Will Deacon
@ 2019-08-30 10:29   ` Joerg Roedel
  2019-08-30 11:24     ` Will Deacon
  0 siblings, 1 reply; 4+ messages in thread
From: Joerg Roedel @ 2019-08-30 10:29 UTC (permalink / raw)
  To: Will Deacon; +Cc: jean-philippe, iommu, robin.murphy

On Wed, Aug 28, 2019 at 10:42:30PM +0100, Will Deacon wrote:
> Hi Joerg,
> 
> On Fri, Aug 23, 2019 at 03:54:40PM +0100, Will Deacon wrote:
> > Please pull these ARM SMMU updates for 5.4. The branch is based on the
> > for-joerg/batched-unmap branch that you pulled into iommu/core already
> > because I didn't want to rebase everything onto -rc3. The pull request
> > was generated against iommu/core.
> 
> Just a gentle nudge on this pull request, since it would be nice to have
> it sit in -next for a bit before the merge window opens.
> 
> Please let me know if you need anything more from me.

It is pulled and pushed out now, thanks Will.

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [GIT PULL] iommu/arm-smmu: Big batch of updates for 5.4
  2019-08-30 10:29   ` Joerg Roedel
@ 2019-08-30 11:24     ` Will Deacon
  0 siblings, 0 replies; 4+ messages in thread
From: Will Deacon @ 2019-08-30 11:24 UTC (permalink / raw)
  To: Joerg Roedel; +Cc: jean-philippe, iommu, robin.murphy

On Fri, Aug 30, 2019 at 12:29:39PM +0200, Joerg Roedel wrote:
> On Wed, Aug 28, 2019 at 10:42:30PM +0100, Will Deacon wrote:
> > On Fri, Aug 23, 2019 at 03:54:40PM +0100, Will Deacon wrote:
> > > Please pull these ARM SMMU updates for 5.4. The branch is based on the
> > > for-joerg/batched-unmap branch that you pulled into iommu/core already
> > > because I didn't want to rebase everything onto -rc3. The pull request
> > > was generated against iommu/core.
> > 
> > Just a gentle nudge on this pull request, since it would be nice to have
> > it sit in -next for a bit before the merge window opens.
> > 
> > Please let me know if you need anything more from me.
> 
> It is pulled and pushed out now, thanks Will.

Cheers, Joerg and sorry for nagging. Next week is going to be crazy for
me, so I'm trying to get my 5.4 queue resolved early.

Will
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, back to index

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-23 14:54 [GIT PULL] iommu/arm-smmu: Big batch of updates for 5.4 Will Deacon
2019-08-28 21:42 ` Will Deacon
2019-08-30 10:29   ` Joerg Roedel
2019-08-30 11:24     ` Will Deacon

IOMMU Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-iommu/0 linux-iommu/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-iommu linux-iommu/ https://lore.kernel.org/linux-iommu \
		iommu@lists.linux-foundation.org iommu@archiver.kernel.org
	public-inbox-index linux-iommu


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.linux-foundation.lists.iommu


AGPL code for this site: git clone https://public-inbox.org/ public-inbox