lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240717184603.GA4188230@nvidia.com>
Date: Wed, 17 Jul 2024 15:46:03 -0300
From: Jason Gunthorpe <jgg@...dia.com>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: iommu@...ts.linux.dev, kvm@...r.kernel.org,
	linux-kernel@...r.kernel.org, Kevin Tian <kevin.tian@...el.com>
Subject: [GIT PULL] Please pull IOMMUFD subsystem changes

Hi Linus,

This PR includes IO fault reporting for iommufd, along with some improvements
to the dirty bitmap reporting library. Details in the tag.

For those following, these series are still progressing:

- User page table invalidation (non-Intel) has a roadmap:
 https://lore.kernel.org/linux-iommu/20231209014726.GA2945299@nvidia.com/

 There will be at least two more invalidation IOCTLs - IOMMU_DEVICE_INVALIDATE
 and IOMMU_VIOMMU_INVALIDATE in future.

- ARM SMMUv3 nested translation:
 https://github.com/jgunthorpe/linux/commits/smmuv3_nesting

- Draft AMD IOMMU nested translation:
 https://lore.kernel.org/linux-iommu/20240112000646.98001-1-suravee.suthikulpanit@amd.com

- Draft vBTM support for SMMUv3:
 https://lore.kernel.org/linux-iommu/20240208151837.35068-1-shameerali.kolothum.thodi@huawei.com/

- Draft RISCV nesting support:
 https://lore.kernel.org/all/20240507142600.23844-1-zong.li@sifive.com/

- Grace command queue passthrough iommufd support:
 https://lore.kernel.org/all/cover.1712978212.git.nicolinc@nvidia.com/

RFC patches for PASID support in iommufd & vfio:
  https://lore.kernel.org/r/20240628090557.50898-1-yi.l.liu@intel.com
  https://lore.kernel.org/r/20240412082121.33382-1-yi.l.liu@intel.com/

RFC patches exploring support for the first Intel Scalable IO Virtualization
(SIOV r1) device are posted:
 https://lore.kernel.org/all/20231009085123.463179-1-yi.l.liu@intel.com/

A lot of the iommufd support has now been merged to qemu, with more
progressing.

Thanks,
Jason

The following changes since commit f2661062f16b2de5d7b6a5c42a9a5c96326b8454:

  Linux 6.10-rc5 (2024-06-23 17:08:54 -0400)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd.git tags/for-linus-iommufd

for you to fetch changes up to 136a8066676e593cd29627219467fc222c8f3b04:

  iommufd: Put constants for all the uAPI enums (2024-07-15 09:44:54 -0300)

----------------------------------------------------------------
iommufd for 6.11 merge window

Major changes:

- The iova_bitmap logic for efficiently reporting dirty pages back to
  userspace has a few more tricky corner case bugs that have been resolved
  and backed with new tests. The revised version has simpler logic.

- Shared branch with iommu for handle support when doing domain
  attach. Handles allow the domain owner to include additional private data
  on a per-device basis.

- IO Page Fault Reporting to userspace via iommufd. Page faults can be
  generated on fault capable HWPTs when a translation is not present.
  Routing them to userspace would allow a VMM to be able to virtualize them
  into an emulated vIOMMU. This is the next step to fully enabling vSVA
  support.

----------------------------------------------------------------
Jason Gunthorpe (3):
      Merge branch 'iommufd_pri' into iommufd for-next
      iommufd: Require drivers to supply the cache_invalidate_user ops
      iommufd: Put constants for all the uAPI enums

Joao Martins (11):
      iommufd/selftest: Fix dirty bitmap tests with u8 bitmaps
      iommufd/selftest: Fix iommufd_test_dirty() to handle <u8 bitmaps
      iommufd/selftest: Add tests for <= u8 bitmap sizes
      iommufd/selftest: Fix tests to use MOCK_PAGE_SIZE based buffer sizes
      iommufd/selftest: Do not record head iova to better match iommu drivers
      iommufd/iova_bitmap: Check iova_bitmap_done() after set ahead
      iommufd/iova_bitmap: Cache mapped length in iova_bitmap_map struct
      iommufd/iova_bitmap: Move initial pinning to iova_bitmap_for_each()
      iommufd/iova_bitmap: Consolidate iova_bitmap_set exit conditionals
      iommufd/iova_bitmap: Dynamic pinning on iova_bitmap_set()
      iommufd/iova_bitmap: Remove iterator logic

Lu Baolu (13):
      iommu: Introduce domain attachment handle
      iommu: Remove sva handle list
      iommu: Add attach handle to struct iopf_group
      iommu: Extend domain attach group with handle support
      iommufd: Add fault and response message definitions
      iommufd: Add iommufd fault object
      iommufd: Fault-capable hwpt attach/detach/replace
      iommufd: Associate fault object with iommufd_hw_pgtable
      iommufd/selftest: Add IOPF support for mock device
      iommufd/selftest: Add coverage for IOPF test
      iommufd: Remove IOMMUFD_PAGE_RESP_FAILURE
      iommufd: Add check on user response code
      iommufd: Fix error pointer checking

 drivers/dma/idxd/init.c                          |   2 +-
 drivers/iommu/io-pgfault.c                       |  63 ++--
 drivers/iommu/iommu-priv.h                       |  11 +
 drivers/iommu/iommu-sva.c                        |  42 ++-
 drivers/iommu/iommu.c                            | 185 +++++++---
 drivers/iommu/iommufd/Makefile                   |   1 +
 drivers/iommu/iommufd/device.c                   |   7 +-
 drivers/iommu/iommufd/fault.c                    | 443 +++++++++++++++++++++++
 drivers/iommu/iommufd/hw_pagetable.c             |  41 ++-
 drivers/iommu/iommufd/iommufd_private.h          |  80 ++++
 drivers/iommu/iommufd/iommufd_test.h             |   8 +
 drivers/iommu/iommufd/iova_bitmap.c              | 124 +++----
 drivers/iommu/iommufd/main.c                     |   6 +
 drivers/iommu/iommufd/selftest.c                 |  70 +++-
 include/linux/iommu.h                            |  41 ++-
 include/uapi/linux/iommufd.h                     | 141 +++++++-
 tools/testing/selftests/iommu/iommufd.c          |  86 +++--
 tools/testing/selftests/iommu/iommufd_fail_nth.c |   2 +-
 tools/testing/selftests/iommu/iommufd_utils.h    |  92 ++++-
 19 files changed, 1206 insertions(+), 239 deletions(-)
 create mode 100644 drivers/iommu/iommufd/fault.c

Download attachment "signature.asc" of type "application/pgp-signature" (229 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ