Public bug reported:

[Impact]
There's a significant performance gain to be had by removing the need to flush 
the IOMMU TLB on every unmap. I'm seeing a 25% performance gain w/ fio reads on 
a single NVMe device. This mode of operation is available for x86 via the 
"intel_iommu=strict" parameter. This support is now available upstream for ARM 
platforms via the "iommu.strict=[0|1]" parameter, while keeping the default in 
strict mode.

[Test Case]
$ cat fio.rc
[global]
rw=read
direct=1
ioengine=libaio
iodepth=2048
numjobs=10
bs=4k
group_reporting=1
group_reporting=1
cpumask=0xff
runtime=100
loops = 10000

[job1]
filename=/dev/nvme0n1

[Fix]
44f6876a00e83 iommu/arm-smmu: Support non-strict mode
b2dfeba654cb0 iommu/io-pgtable-arm-v7s: Add support for non-strict mode
9662b99a19abc iommu/arm-smmu-v3: Add support for non-strict mode
b6b65ca20bc93 iommu/io-pgtable-arm: Add support for non-strict mode
68a6efe86f6a1 iommu: Add "iommu.strict" command line option
2da274cdf998a iommu/dma: Add support for non-strict mode
07fdef34d2be6 iommu/arm-smmu-v3: Implement flush_iotlb_all hook
85c7a0f1ef624 iommu/io-pgtable-arm: Fix race handling in split_blk_unmap()

[Regression Risk]

** Affects: linux (Ubuntu)
     Importance: Undecided
     Assignee: dann frazier (dannf)
         Status: In Progress

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1806488

Title:
  Support non-strict iommu mode on arm64

Status in linux package in Ubuntu:
  In Progress

Bug description:
  [Impact]
  There's a significant performance gain to be had by removing the need to 
flush the IOMMU TLB on every unmap. I'm seeing a 25% performance gain w/ fio 
reads on a single NVMe device. This mode of operation is available for x86 via 
the "intel_iommu=strict" parameter. This support is now available upstream for 
ARM platforms via the "iommu.strict=[0|1]" parameter, while keeping the default 
in strict mode.

  [Test Case]
  $ cat fio.rc
  [global]
  rw=read
  direct=1
  ioengine=libaio
  iodepth=2048
  numjobs=10
  bs=4k
  group_reporting=1
  group_reporting=1
  cpumask=0xff
  runtime=100
  loops = 10000

  [job1]
  filename=/dev/nvme0n1

  [Fix]
  44f6876a00e83 iommu/arm-smmu: Support non-strict mode
  b2dfeba654cb0 iommu/io-pgtable-arm-v7s: Add support for non-strict mode
  9662b99a19abc iommu/arm-smmu-v3: Add support for non-strict mode
  b6b65ca20bc93 iommu/io-pgtable-arm: Add support for non-strict mode
  68a6efe86f6a1 iommu: Add "iommu.strict" command line option
  2da274cdf998a iommu/dma: Add support for non-strict mode
  07fdef34d2be6 iommu/arm-smmu-v3: Implement flush_iotlb_all hook
  85c7a0f1ef624 iommu/io-pgtable-arm: Fix race handling in split_blk_unmap()

  [Regression Risk]

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1806488/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to