Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cherry-pick cppc_cpufreq series into 24.04_linux-nvidia-adv-6.8-next #29

Open
wants to merge 352 commits into
base: 24.04_linux-nvidia-adv-6.8-next
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
352 commits
Select commit Hold shift + click to select a range
0ca8fca
iommu/arm-smmu-v3: Compute the STE only once for each master
jgunthorpe Feb 26, 2024
8627c37
iommu/arm-smmu-v3: Do not change the STE twice during arm_smmu_attach…
jgunthorpe Feb 26, 2024
6c61624
iommu/arm-smmu-v3: Put writing the context descriptor in the right order
jgunthorpe Feb 26, 2024
de4ae82
iommu/arm-smmu-v3: Pass smmu_domain to arm_enable/disable_ats()
jgunthorpe Feb 26, 2024
c480053
iommu/arm-smmu-v3: Remove arm_smmu_master->domain
jgunthorpe Feb 26, 2024
35b0ab5
iommu/arm-smmu-v3: Check that the RID domain is S1 in SVA
jgunthorpe Feb 26, 2024
0e39932
iommu/arm-smmu-v3: Add a global static IDENTITY domain
jgunthorpe Feb 26, 2024
8dd001f
iommu/arm-smmu-v3: Add a global static BLOCKED domain
jgunthorpe Feb 26, 2024
363fdec
iommu/arm-smmu-v3: Use the identity/blocked domain during release
jgunthorpe Feb 26, 2024
01fb420
iommu/arm-smmu-v3: Pass arm_smmu_domain and arm_smmu_device to finalize
jgunthorpe Feb 26, 2024
874013b
iommu/arm-smmu-v3: Convert to domain_alloc_paging()
jgunthorpe Feb 26, 2024
0c5fcaf
iommu: constify pointer to bus_type
krzk Feb 16, 2024
4b39f0a
iommu: constify of_phandle_args in xlate
krzk Feb 16, 2024
ecd2660
iommu: constify fwnode in iommu_ops_from_fwnode()
krzk Feb 16, 2024
cda186f
iommu: re-use local fwnode variable in iommu_ops_from_fwnode()
krzk Feb 16, 2024
8e7d3d4
vfio/nvgrace-gpu: Convey kvm to map device memory region as noncached
ankita-nv Feb 29, 2024
7ae1386
Revert "vfio/type1: Unpin zero pages"
awilliam Feb 29, 2024
26583d3
iommu/dma: Document min_align_mask assumption
rmurphy-arm Mar 4, 2024
e9a3919
iommu/arm-smmu-v3: Add cpu_to_le64() around STRTAB_STE_0_V
jgunthorpe Mar 4, 2024
19cf06d
iommu/arm-smmu-v3: Fix access for STE.SHCFG
misaleh Mar 23, 2024
e270fc6
swiotlb: fix swiotlb_bounce() to do partial sync's correctly
mhklinux Mar 27, 2024
0289ed0
iommu/arm-smmu-v3: Retire disable_bypass parameter
rmurphy-arm Apr 5, 2024
528abd4
iommu/arm-smmu-v3: Do not allow a SVA domain to be set on the wrong P…
jgunthorpe Mar 27, 2024
2b70290
iommu/arm-smmu-v3: Do not ATC invalidate the entire domain
jgunthorpe Mar 27, 2024
4fe81b2
iommu/arm-smmu-v3: Add a type for the CD entry
jgunthorpe Mar 27, 2024
79028b2
iommu: Pass domain to remove_dev_pasid() op
yiliu1765 Mar 28, 2024
cfc2a8d
iommu/dma: use iommu_put_pages_list() to releae freelist
soleen Apr 13, 2024
099c35e
iommu/vt-d: add wrapper functions for page allocations
soleen Apr 13, 2024
bb21953
iommu/io-pgtable-arm: use page allocation function provided by iommu-…
soleen Apr 13, 2024
7ec56ef
iommu: observability of the IOMMU allocations
soleen Apr 13, 2024
9369ef4
iommu: account IOMMU allocated memory
soleen Apr 13, 2024
4003b3c
iommu/arm-smmu: Convert to domain_alloc_paging()
jgunthorpe Apr 11, 2024
cb26e55
iommu/arm-smmu-qcom-debug: Add support for TBUs
Apr 17, 2024
264ce61
iommu/arm-smmu: Allow using a threaded handler for context interrupts
Apr 17, 2024
223359b
iommu/arm-smmu-qcom: Use a custom context fault handler for sdm845
Apr 17, 2024
184f463
iommu/arm-smmu-qcom: Use the custom fault handler on more platforms
Apr 17, 2024
99ed722
iommu: Add ops->domain_alloc_sva()
jgunthorpe Apr 18, 2024
b83bd5e
iommu/arm-smmu-qcom: Don't build debug features as a kernel module
willdeacon May 1, 2024
a5e46f3
iommu/arm-smmu-v3: Add an ops indirection to the STE code
jgunthorpe Apr 30, 2024
98a0538
iommu/arm-smmu-v3: Make CD programming use arm_smmu_write_entry()
jgunthorpe Apr 30, 2024
0d6825c
iommu/arm-smmu-v3: Move the CD generation for S1 domains into a function
jgunthorpe Apr 30, 2024
c2f1310
iommu/arm-smmu-v3: Consolidate clearing a CD table entry
jgunthorpe Apr 30, 2024
04233e0
iommu/arm-smmu-v3: Make arm_smmu_alloc_cd_ptr()
jgunthorpe Apr 30, 2024
e308325
iommu/arm-smmu-v3: Allocate the CD table entry in advance
jgunthorpe Apr 30, 2024
0d61fb1
iommu/arm-smmu-v3: Move the CD generation for SVA into a function
jgunthorpe Apr 30, 2024
c865cf5
iommu/arm-smmu-v3: Build the whole CD in arm_smmu_make_s1_cd()
jgunthorpe Apr 30, 2024
f40cc87
iommu/arm-smmu-v3: Add unit tests for arm_smmu_write_entry
jgunthorpe Apr 30, 2024
b68117f
mm/memory-failure: convert shake_page() to shake_folio()
Apr 12, 2024
87db5cc
mm: convert hugetlb_page_mapping_lock_write to folio
Apr 12, 2024
4c86272
mm/memory-failure: convert memory_failure() to use a folio
Apr 12, 2024
049c4a9
mm/memory-failure: convert hwpoison_user_mappings to take a folio
Apr 12, 2024
625908e
mm/memory-failure: add some folio conversions to unpoison_memory
Apr 12, 2024
e624df4
mm/memory-failure: use folio functions throughout collect_procs()
Apr 12, 2024
4fb0282
mm/memory-failure: pass the folio to collect_procs_ksm()
Apr 12, 2024
c2dc6d1
memory-failure: remove calls to page_mapping()
Apr 23, 2024
0d19949
swiotlb: remove alloc_size argument to swiotlb_tbl_map_single()
mhklinux Apr 8, 2024
6125cb8
iommu/dma: fix zeroing of bounce buffer padding used by untrusted dev…
mhklinux Apr 8, 2024
058f32e
iommu/arm-smmu-v3: Make the kunit into a module
jgunthorpe May 7, 2024
fe94dbf
vfio/pci: Restore zero affected bus reset devices warning
awilliam May 16, 2024
25a6a14
iommu/arm-smmu-v3: Avoid uninitialized asid in case of error
misaleh Jun 4, 2024
487578f
iommu/arm-smmu-v3: Use *-y instead of *-objs in Makefile
andy-shev May 8, 2024
63e993b
iommu: Make iommu_sva_domain_alloc() static
LuBaolu May 28, 2024
9fad206
iommu/dma: Prune redundant pgprot arguments
rmurphy-arm Jun 4, 2024
fc0a9d0
iommu/iova: Add missing MODULE_DESCRIPTION() macro
Jun 14, 2024
0dcba26
iommufd: Use atomic_long_try_cmpxchg() in incr_user_locked_vm()
ubizjak May 22, 2024
8210d45
iommufd/selftest: Fix dirty bitmap tests with u8 bitmaps
jpemartins Jun 27, 2024
959bab8
iommufd/selftest: Fix iommufd_test_dirty() to handle <u8 bitmaps
jpemartins Jun 27, 2024
934a7fd
iommufd/selftest: Add tests for <= u8 bitmap sizes
jpemartins Jun 27, 2024
bd97196
iommufd/selftest: Fix tests to use MOCK_PAGE_SIZE based buffer sizes
jpemartins Jun 27, 2024
02dfdf2
iommufd/selftest: Do not record head iova to better match iommu drivers
jpemartins Jun 27, 2024
99e03cb
iommufd/iova_bitmap: Check iova_bitmap_done() after set ahead
jpemartins Jun 27, 2024
cf346ad
iommufd/iova_bitmap: Cache mapped length in iova_bitmap_map struct
jpemartins Jun 27, 2024
ce80e91
iommufd/iova_bitmap: Move initial pinning to iova_bitmap_for_each()
jpemartins Jun 27, 2024
7458096
iommufd/iova_bitmap: Consolidate iova_bitmap_set exit conditionals
jpemartins Jun 27, 2024
a921291
iommufd/iova_bitmap: Dynamic pinning on iova_bitmap_set()
jpemartins Jun 27, 2024
c869c75
iommufd/iova_bitmap: Remove iterator logic
jpemartins Jun 27, 2024
d79c84d
iommu/arm-smmu-v3: Convert to domain_alloc_sva()
jgunthorpe Jun 25, 2024
32e1633
iommu/arm-smmu-v3: Start building a generic PASID layer
jgunthorpe Jun 25, 2024
d1bceae
iommu/arm-smmu-v3: Make smmu_domain->devices into an allocated list
jgunthorpe Jun 25, 2024
1eea884
iommu/arm-smmu-v3: Make changing domains be hitless for ATS
jgunthorpe Jun 25, 2024
6a0aa77
iommu/arm-smmu-v3: Add ssid to struct arm_smmu_master_domain
jgunthorpe Jun 25, 2024
b391abc
iommu/arm-smmu-v3: Do not use master->sva_enable to restrict attaches
jgunthorpe Jun 25, 2024
be8e5a9
iommu/arm-smmu-v3: Thread SSID through the arm_smmu_attach_*() interface
jgunthorpe Jun 25, 2024
2b7cbc1
iommu/arm-smmu-v3: Make SVA allocate a normal arm_smmu_domain
jgunthorpe Jun 25, 2024
8af691a
iommu/arm-smmu-v3: Keep track of arm_smmu_master_domain for SVA
jgunthorpe Jun 25, 2024
3999dd0
iommu/arm-smmu-v3: Put the SVA mmu notifier in the smmu_domain
jgunthorpe Jun 25, 2024
426c245
iommu/arm-smmu-v3: Allow IDENTITY/BLOCKED to be set while PASID is used
jgunthorpe Jun 25, 2024
a106694
iommu/arm-smmu-v3: Test the STE S1DSS functionality
jgunthorpe Jun 25, 2024
a358691
iommu/arm-smmu-v3: Allow a PASID to be set when RID is IDENTITY/BLOCKED
jgunthorpe Jun 25, 2024
f66d681
iommu/arm-smmu-v3: Allow setting a S1 domain to a PASID
jgunthorpe Jun 25, 2024
fd4303d
iommu/arm-smmu-v3: Do not zero the strtab twice
jgunthorpe Jun 11, 2024
271f7f4
iommu/arm-smmu-v3: Shrink the strtab l1_desc array
jgunthorpe Jun 11, 2024
ef9d9f6
iommu/arm-smmu-v3: add missing MODULE_DESCRIPTION() macro
Jun 13, 2024
14c53f9
iommu/arm-smmu: Add CB prefix to register bitfields
robclark Jul 1, 2024
7a76936
iommu/arm-smmu-qcom-debug: Do not print for handled faults
robclark Jul 1, 2024
3a64baf
iommu/arm-smmu: Pretty-print context fault related regs
robclark Jul 1, 2024
53d357e
iommu/arm-smmu-qcom: record reason for deferring probe
Jul 2, 2024
7705d50
iommu/arm-smmu-v3: Add support for domain_alloc_user fn
shamiali2008 Jul 3, 2024
4f320e4
iommu/arm-smmu-v3: Add feature detection for HTTU
jpbrucker Jul 3, 2024
5576ffe
iommu/io-pgtable-arm: Add read_and_clear_dirty() support
shamiali2008 Jul 3, 2024
0ac0f40
iommu/arm-smmu-v3: Add support for dirty tracking in domain alloc
jpemartins Jul 3, 2024
f2379c6
iommu/arm-smmu-v3: Enable HTTU for stage1 with io-pgtable mapping
Jul 3, 2024
7b5082f
iommu: Introduce domain attachment handle
LuBaolu Jul 2, 2024
a2cae7b
iommu: Remove sva handle list
LuBaolu Jul 2, 2024
b8817df
iommu: Add attach handle to struct iopf_group
LuBaolu Jul 2, 2024
254f151
iommu: Extend domain attach group with handle support
LuBaolu Jul 2, 2024
567f711
iommu: Add iommu_paging_domain_alloc() interface
LuBaolu Jun 10, 2024
3fe42ae
iommufd: Use iommu_paging_domain_alloc()
LuBaolu Jun 10, 2024
43c38fa
vfio/type1: Use iommu_paging_domain_alloc()
LuBaolu Jun 10, 2024
0c33c95
iommu/of: Support ats-supported device-tree property
jpbrucker Jun 7, 2024
b30303d
iommufd: Add fault and response message definitions
LuBaolu Jul 2, 2024
29d1b75
iommufd: Add iommufd fault object
LuBaolu Jul 2, 2024
3e288bf
iommufd: Fault-capable hwpt attach/detach/replace
LuBaolu Jul 2, 2024
48c69e6
iommufd: Associate fault object with iommufd_hw_pgtable
LuBaolu Jul 2, 2024
e2a6082
iommufd/selftest: Add IOPF support for mock device
LuBaolu Jul 2, 2024
6ca31cc
iommufd/selftest: Add coverage for IOPF test
LuBaolu Jul 2, 2024
e477346
iommufd: Require drivers to supply the cache_invalidate_user ops
jgunthorpe Jun 28, 2024
ad7849e
vfio/pci: Init the count variable in collecting hot-reset devices
yiliu1765 Jul 10, 2024
87c8a25
iommufd: Remove IOMMUFD_PAGE_RESP_FAILURE
LuBaolu Jul 10, 2024
285c412
iommufd: Add check on user response code
LuBaolu Jul 10, 2024
1cd1c2e
iommufd: Fix error pointer checking
LuBaolu Jul 12, 2024
e5418b2
iommu: Move IOMMU_DIRTY_NO_CLEAR define
shamiali2008 Jul 12, 2024
4b9a02c
iommufd: Put constants for all the uAPI enums
jgunthorpe Jul 12, 2024
d022c3a
iommufd/device: Fix hwpt at err_unresv in iommufd_device_do_replace()
nicolinc Jul 18, 2024
7f9f350
iommufd: Reorder include files
nicolinc Aug 3, 2024
b177a97
iommu/arm-smmu-v3: Issue a batch of commands to the same cmdq
nicolinc Aug 29, 2024
2a6d904
iommu/arm-smmu-v3: Pass in cmdq pointer to arm_smmu_cmdq_build_sync_cmd
nicolinc Aug 29, 2024
1dd3563
iommu/arm-smmu-v3: Pass in cmdq pointer to arm_smmu_cmdq_init
nicolinc Aug 29, 2024
28ca6b4
iommu/arm-smmu-v3: Make symbols public for CONFIG_TEGRA241_CMDQV
nicolinc Aug 29, 2024
c618beb
iommu/arm-smmu-v3: Add ARM_SMMU_OPT_TEGRA241_CMDQV
nicolinc Aug 29, 2024
1f63a61
iommu/arm-smmu-v3: Add acpi_smmu_iort_probe_model for impl
nicolinc Aug 29, 2024
6487e30
iommu/arm-smmu-v3: Add struct arm_smmu_impl_ops
jgunthorpe Aug 29, 2024
86123d7
iommu/arm-smmu-v3: Add in-kernel support for NVIDIA Tegra241 (Grace) …
nwatterson Aug 29, 2024
0ca9667
iommu/arm-smmu-v3: Start a new batch if new command is not supported
nicolinc Aug 29, 2024
ac1d4be
iommu/tegra241-cmdqv: Limit CMDs for VCMDQs of a guest owned VINTF
nicolinc Aug 29, 2024
4c91204
iommu/tegra241-cmdqv: Fix -Wformat-truncation warnings in lvcmdq_erro…
nicolinc Sep 2, 2024
338dec3
iommu/tegra241-cmdqv: Fix ioremap() error handling in probe()
Sep 4, 2024
bdec68f
iommu/tegra241-cmdqv: Drop static at local variable
nicolinc Sep 5, 2024
4ea37cd
iommu/tegra241-cmdqv: Do not allocate vcmdq until dma_set_mask_and_co…
nicolinc Sep 5, 2024
94c1977
iommu/arm-smmu-v3: Use the new rb tree helpers
jgunthorpe Aug 6, 2024
cb63a15
iommu/arm-smmu-v3: Add arm_smmu_strtab_l1/2_idx()
jgunthorpe Sep 6, 2024
2fb0436
iommu/arm-smmu-v3: Add types for each level of the 2 level stream table
jgunthorpe Sep 6, 2024
6d17daa
iommu/arm-smmu-v3: Reorganize struct arm_smmu_strtab_cfg
jgunthorpe Sep 6, 2024
abad5e8
iommu/arm-smmu-v3: Remove strtab_base/cfg
jgunthorpe Sep 6, 2024
5872222
iommu/arm-smmu-v3: Do not use devm for the cd table allocations
jgunthorpe Sep 6, 2024
6d6ad39
iommu/arm-smmu-v3: Shrink the cdtab l1_desc array
jgunthorpe Sep 6, 2024
a7bf746
iommu/arm-smmu-v3: Add types for each level of the CD table
jgunthorpe Sep 6, 2024
dc0cdfa
iommu/arm-smmu-v3: Reorganize struct arm_smmu_ctx_desc_cfg
jgunthorpe Sep 6, 2024
33f0cc3
iommu/arm-smmu: Un-demote unhandled-fault msg
robclark Aug 9, 2024
16611b9
iommu/arm-smmu-qcom: Register the TBU driver in qcom_smmu_impl_init
Jul 4, 2024
13588f0
iommu/arm-smmu-v3: Fix a NULL vs IS_ERR() check
Aug 15, 2024
9c4ef5f
iommufd/selftest: Fix buffer read overrrun in the dirty test
jgunthorpe Aug 22, 2024
1c4e308
iommu: Handle iommu faults for a bad iopf setup
pran005 Aug 16, 2024
4dbb802
cover-letter: Apply upstream patches for dependencies
nicolinc Aug 23, 2024
8fc59df
vfio: Remove VFIO_TYPE1_NESTING_IOMMU
jgunthorpe May 10, 2022
3dad76e
iommu/arm-smmu-v3: Use S2FWB when available
jgunthorpe May 24, 2024
24069e6
ACPICA: IORT: Update for revision E.f
nicolinc Aug 9, 2024
4abdaa0
ACPI/IORT: Support CANWBS memory access flag
nicolinc Jul 15, 2024
f7bc6ed
iommu/arm-smmu-v3: Report IOMMU_CAP_ENFORCE_CACHE_COHERENCY for CANWBS
jgunthorpe Jul 17, 2024
eac9c8e
iommu/arm-smmu-v3: Support IOMMU_GET_HW_INFO via struct arm_smmu_hw_info
nicolinc Sep 22, 2022
cf04613
iommu/arm-smmu-v3: Implement IOMMU_HWPT_ALLOC_NEST_PARENT
jgunthorpe Oct 31, 2023
050fce2
iommu/arm-smmu-v3: Support IOMMU_DOMAIN_NESTED
jgunthorpe Jul 7, 2022
7563a9e
cover-letter: Initial support for SMMUv3 nested translation
jgunthorpe Oct 31, 2023
003cf96
WAR: ACPI/IORT: Set CANWBS for Grace CPU
nicolinc Jul 17, 2024
414775e
cover-letter: WAR for nesting patches
nicolinc May 31, 2024
279125b
iommufd: Reorder struct forward declarations
nicolinc Aug 21, 2024
1c151ea
iommufd/viommu: Add IOMMUFD_OBJ_VIOMMU and IOMMU_VIOMMU_ALLOC ioctl
nicolinc Apr 5, 2024
3b0bafa
iommu: Pass in a viommu pointer to domain_alloc_user op
nicolinc May 21, 2024
874cef5
iommufd: Allow pt_id to carry viommu_id for IOMMU_HWPT_ALLOC
nicolinc May 21, 2024
fd6bea3
iommufd/selftest: Add IOMMU_VIOMMU_ALLOC test coverage
nicolinc Jan 10, 2024
c091570
iommufd/viommu: Add IOMMU_VIOMMU_SET/UNSET_VDEV_ID ioctl
nicolinc Dec 19, 2023
8d658ea
iommufd/selftest: Add IOMMU_VIOMMU_SET/UNSET_VDEV_ID test coverage
nicolinc Apr 4, 2024
ca87efe
iommufd/viommu: Add cache_invalidate for IOMMU_VIOMMU_TYPE_DEFAULT
nicolinc May 31, 2024
f9e4f65
iommufd: Allow hwpt_id to carry viommu_id for IOMMU_HWPT_INVALIDATE
nicolinc Dec 13, 2023
7346132
iommufd/viommu: Add vdev_id helpers for IOMMU drivers
nicolinc Aug 21, 2024
9ded30c
iommu: Add iommu_copy_struct_from_full_user_array helper
jgunthorpe Aug 21, 2024
b2b813c
iommufd/selftest: Add mock_viommu_invalidate_user op
nicolinc Jan 18, 2024
6ed2ba0
iommufd/selftest: Add IOMMU_TEST_OP_DEV_CHECK_CACHE test command
nicolinc Jan 18, 2024
75a41c3
iommufd/selftest: Add VIOMMU coverage for IOMMU_HWPT_INVALIDATE ioctl
nicolinc Jan 19, 2024
946c836
iommufd/viommu: Add iommufd_viommu_to_parent_domain helper
nicolinc May 23, 2024
f0fda87
iommu/arm-smmu-v3: Add arm_smmu_cache_invalidate_user
nicolinc Feb 11, 2023
e2375eb
iommu/arm-smmu-v3: Add arm_smmu_viommu_cache_invalidate
nicolinc May 18, 2024
d94e8d8
iommu/arm-smmu-v3: Allow ATS for IOMMU_DOMAIN_NESTED
jgunthorpe Jul 12, 2024
bb68aaf
iommu/arm-smmu-v3: Update comments about ATS and bypass
jgunthorpe Aug 19, 2024
9c051b3
cover-letter: iommufd: Add VIOMMU infrastructure (Part-1)
nicolinc Dec 13, 2023
453a832
iommufd: Rename IOMMUFD_OBJ_FAULT to IOMMUFD_OBJ_EVENT_IOPF
nicolinc Jul 10, 2024
f03c0d4
iommufd: Rename fault.c to event.c
nicolinc Jul 10, 2024
d4bb4cc
iommufd: Add IOMMUFD_OBJ_EVENT_VIRQ and IOMMUFD_CMD_VIRQ_ALLOC
nicolinc Aug 8, 2024
d44fbf5
iommufd/viommu: Allow drivers to control vdev_id lifecycle
nicolinc Jun 1, 2024
c301d08
iommufd/viommu: Add iommufd_vdev_id_to_dev helper
nicolinc Aug 21, 2024
c760eaa
iommufd/viommu: Add iommufd_viommu_report_irq helper
nicolinc Aug 21, 2024
002511d
iommufd/selftest: Implement mock_viommu_set/unset_vdev_id
nicolinc Aug 21, 2024
670d5ef
iommufd/selftest: Add IOMMU_TEST_OP_TRIGGER_VIRQ for VIRQ coverage
nicolinc Jul 18, 2024
2678803
iommufd/selftest: Add EVENT_VIRQ test coverage
nicolinc Jul 18, 2024
6f7f441
iommu/arm-smmu-v3: Report virtual IRQ for device in user space
nicolinc Aug 13, 2024
91e4b61
cover-letter: iommufd: Add VIOMMU infrastructure (Part-2 VIRQ)
nicolinc Aug 13, 2024
3eae79c
iommufd/device: Enforce reserved IOVA also when attached to hwpt_nested
nicolinc Aug 2, 2024
d096dab
iommu/dma: Support MSIs through nested domains
rmurphy-arm Mar 16, 2023
e2bbd70
iommu/arm-smmu-v3: Implement arm_smmu_get_msi_mapping_domain
nicolinc Jul 7, 2022
da8338f
cover-letter: Apply RMR solution for MSI mappings
nicolinc Aug 22, 2024
1289a58
WAR: iommufd/pages: Bypass PFNMAP
ankita-nv Nov 15, 2023
b50768a
WAR: vfio/pci: Report PASID capability
ankita-nv Nov 15, 2023
873c71f
mm: handle poisoning of pfn without struct pages
ankita-nv Dec 6, 2023
f264b2a
mm: Add poison error check in fixup_user_fault() for mapped pfn
ankita-nv Dec 6, 2023
0eaffdf
mm: Change ghes code to allow poison of non-struct pfn
ankita-nv Dec 6, 2023
ac4ba54
vfio/nvgrace-gpu: register device memory for poison handling
ankita-nv Feb 25, 2024
a556373
KVM: arm64: determine memory type from VMA
ankita-nv Feb 26, 2024
ed07379
arm64: configs: Build NVGRACE_GPU_VFIO_PCI as LKM
nicolinc Dec 4, 2023
f8129e0
arm64: configs: Enable IOMMUFD and VFIO_DEVICE_CDEV
nicolinc Nov 7, 2023
4830d44
arm64: configs: Replace VFIO_CONTAINER with IOMMUFD_VFIO_CONTAINER
nicolinc Jan 22, 2024
4aef928
cover-letter: Add GPU passthrough support
nicolinc Feb 29, 2024
a4208d0
iommufd: Move iommufd_viommu structs to public iommufd header
nicolinc Apr 3, 2024
b4d01ce
iommufd: Rename _iommufd_object_alloc to iommufd_object_alloc_elm
nicolinc Apr 4, 2024
910f937
iommufd/viommu: Support driver-managed viommu allocation
nicolinc Jun 1, 2024
d292e37
iommufd/viommu: Allow driver-level vdev_id structure
nicolinc Jun 1, 2024
3bf44c4
iommufd: Add struct iommufd_vqueue and its related viommu ops
nicolinc Apr 4, 2024
c781482
iommufd: Add IOMMUFD_OBJ_VQUEUE and IOMMUFD_CMD_VQUEUE_ALLOC
nicolinc Apr 4, 2024
43cf121
iommufd: Add mmap infrastructure
nicolinc Apr 7, 2023
e848de6
iommu/tegra241-cmdqv: Add user-space use support
nicolinc Aug 31, 2021
15e1172
cover-letter: iommufd: Add VIOMMU infrastructure (Part-3 VQUEUE)
nicolinc Mar 28, 2024
752afed
arm64: defconfig: Enable CONFIG_TEGRA241_CMDQV
nicolinc May 1, 2023
c8cbf07
arm64: defconfig: Enable CONFIG_DMA_MAP_BENCHMARK
nicolinc Jul 12, 2024
2c28791
cover-letter: Add CMDQV support
nicolinc Feb 29, 2024
d12647e
vfio/nvgrace-gpu: Read dvsec register to determine need for uncached …
ankita-nv Aug 14, 2024
dd0d8e1
vfio/nvgrace-gpu: Expose the blackwell device PF BAR1 to the VM
ankita-nv Aug 14, 2024
093c583
vfio/nvgrace-gpu: Check the HBM training and C2C link status
ankita-nv Aug 14, 2024
f104174
cover-letter: vfio/nvgrace-gpu: Enable grace blackwell boards
ankita-nv Aug 14, 2024
12648ff
KVM: arm64: Allow exec fault on memory mapped cacheable in VMA
ankita-nv Aug 29, 2024
d4f9dd8
vfio/nvgrace-egm: Introduce module to manage EGM
ankita-nv Aug 29, 2024
630aa88
vfio/nvgrace-egm: Handle pages with ECC errors on the EGM
ankita-nv Aug 29, 2024
d25d871
vfio/nvgrace-egm: Register EGM for runtime ECC poison errors handling
ankita-nv Aug 29, 2024
f4361ae
arm64: configs: Build CONFIG_NVGRACE_EGM as LKM
nvmochs Aug 30, 2024
31824bd
cover-letter: Add virtualization support for EGM
ankita-nv Aug 29, 2024
84ca99b
vfio/nvgrace-egm: Move the egm header file to include
ankita-nv Oct 13, 2024
41de139
vfio/nvgrace-gpu: Add a new GH200 SKU to the devid table
ankita-nv Oct 13, 2024
22c8d05
cover-letter: vfio/nvgrace-gpu: Enable GH SKU and migrate EGM header
nvmochs Oct 14, 2024
17cf4be
NVIDIA: [Config] nvidia-6.8: Update annotations for Grace I/O virtual…
nvmochs Jul 16, 2024
515f6bc
net/mlx5: Add IFC related stuff for data direct
Aug 1, 2024
648e3a7
RDMA/mlx5: Introduce the 'data direct' driver
Aug 1, 2024
99ac798
RDMA/mlx5: Add the initialization flow to utilize the 'data direct' d…
Aug 1, 2024
4524efd
RDMA/umem: Add support for creating pinned DMABUF umem with a given d…
Aug 1, 2024
53b8e2c
RDMA/umem: Introduce an option to revoke DMABUF umem
Aug 1, 2024
893bf22
RDMA: Pass uverbs_attr_bundle as part of '.reg_user_mr_dmabuf' API
Aug 1, 2024
a90a19e
RDMA/mlx5: Add support for DMABUF MR registrations with Data-direct
Aug 1, 2024
39be027
RDMA/mlx5: Introduce GET_DATA_DIRECT_SYSFS_PATH ioctl
Aug 1, 2024
4186f26
UBUNTU: Start new release
nvidia-bfigg Oct 19, 2024
cff35f3
NVIDIA: [Config] Annotations update
nvidia-bfigg Oct 19, 2024
add7f35
UBUNTU: linux-nvidia-adv-6.8.0-1003.3
nvidia-bfigg Oct 19, 2024
38def3c
cppc_cpufreq: Use desired perf if feedback ctrs are 0 or unchanged
Sep 29, 2024
0c61cf2
cppc_cpufreq: Remove HiSilicon CPPC workaround
Sep 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Documentation/admin-guide/cgroup-v2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1432,7 +1432,7 @@ PAGE_SIZE multiple when read back.
sec_pagetables
Amount of memory allocated for secondary page tables,
this currently includes KVM mmu allocations on x86
and arm64.
and arm64 and IOMMU page tables.

percpu (npn)
Amount of memory used for storing per-cpu kernel
Expand Down
32 changes: 32 additions & 0 deletions Documentation/admin-guide/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4572,6 +4572,38 @@
bridges without forcing it upstream. Note:
this removes isolation between devices and
may put more devices in an IOMMU group.
config_acs=
Format:
<ACS flags>@<pci_dev>[; ...]
Specify one or more PCI devices (in the format
specified above) optionally prepended with flags
and separated by semicolons. The respective
capabilities will be enabled, disabled or
unchanged based on what is specified in
flags.

ACS Flags is defined as follows:
bit-0 : ACS Source Validation
bit-1 : ACS Translation Blocking
bit-2 : ACS P2P Request Redirect
bit-3 : ACS P2P Completion Redirect
bit-4 : ACS Upstream Forwarding
bit-5 : ACS P2P Egress Control
bit-6 : ACS Direct Translated P2P
Each bit can be marked as:
'0' – force disabled
'1' – force enabled
'x' – unchanged
For example,
pci=config_acs=10x
would configure all devices that support
ACS to enable P2P Request Redirect, disable
Translation Blocking, and leave Source
Validation unchanged from whatever power-up
or firmware set it to.

Note: this may remove isolation between devices
and may put more devices in an IOMMU group.
force_floating [S390] Force usage of floating interrupts.
nomio [S390] Do not use MIO instructions.
norid [S390] ignore the RID field and force use of
Expand Down
4 changes: 2 additions & 2 deletions Documentation/filesystems/proc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1110,8 +1110,8 @@ KernelStack
PageTables
Memory consumed by userspace page tables
SecPageTables
Memory consumed by secondary page tables, this currently
currently includes KVM mmu allocations on x86 and arm64.
Memory consumed by secondary page tables, this currently includes
KVM mmu and IOMMU allocations on x86 and arm64.
NFS_Unstable
Always zero. Previous counted pages which had been written to
the server, but has not been committed to stable storage.
Expand Down
8 changes: 7 additions & 1 deletion MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -11264,7 +11264,6 @@ F: drivers/iommu/
F: include/linux/iommu.h
F: include/linux/iova.h
F: include/linux/of_iommu.h
F: include/uapi/linux/iommu.h

IOMMUFD
M: Jason Gunthorpe <[email protected]>
Expand Down Expand Up @@ -21611,6 +21610,7 @@ M: Thierry Reding <[email protected]>
R: Krishna Reddy <[email protected]>
L: [email protected]
S: Supported
F: drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c
F: drivers/iommu/arm/arm-smmu/arm-smmu-nvidia.c
F: drivers/iommu/tegra*

Expand Down Expand Up @@ -23109,6 +23109,12 @@ L: [email protected]
S: Maintained
F: drivers/vfio/pci/virtio

VFIO NVIDIA GRACE GPU DRIVER
M: Ankit Agrawal <[email protected]>
L: [email protected]
S: Supported
F: drivers/vfio/pci/nvgrace-gpu/

VFIO PCI DEVICE SPECIFIC DRIVERS
R: Jason Gunthorpe <[email protected]>
R: Yishai Hadas <[email protected]>
Expand Down
14 changes: 7 additions & 7 deletions Ubuntu.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Name: linux
Version: 6.1.0
Series: 23.04 (lunar)
Name: linux-nvidia-adv
Version: 6.8.0
Series: 24.04 (noble)
Description:
This is the source code for the Ubuntu linux kernel for the 23.04 series. This
source tree is used to produce the flavours: generic, generic-64k, generic-lpae.
This kernel is configured to support the widest range of desktop, laptop and
server configurations.
This is the source code for the Ubuntu Nvidia Tech Preview linux kernel for
the 24.04 series. This source tree is used to produce the flavours: nvidia-adv,
nvidia-adv-64k. This kernel is configured for use with Nvidia Tech Preview
images.
2 changes: 2 additions & 0 deletions arch/arm/include/asm/pgtable.h
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,8 @@ static inline void __sync_icache_dcache(pte_t pteval)
extern void __sync_icache_dcache(pte_t pteval);
#endif

#define PFN_PTE_SHIFT PAGE_SHIFT

void set_ptes(struct mm_struct *mm, unsigned long addr,
pte_t *ptep, pte_t pteval, unsigned int nr);
#define set_ptes set_ptes
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mm/mmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -1814,6 +1814,6 @@ void set_ptes(struct mm_struct *mm, unsigned long addr,
if (--nr == 0)
break;
ptep++;
pte_val(pteval) += PAGE_SIZE;
pteval = pte_next_pfn(pteval);
}
}
9 changes: 9 additions & 0 deletions arch/arm64/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -2229,6 +2229,15 @@ config UNWIND_PATCH_PAC_INTO_SCS
select UNWIND_TABLES
select DYNAMIC_SCS

config ARM64_CONTPTE
bool "Contiguous PTE mappings for user memory" if EXPERT
depends on TRANSPARENT_HUGEPAGE
default y
help
When enabled, user mappings are configured using the PTE contiguous
bit, for any mappings that meet the size and alignment requirements.
This reduces TLB pressure and improves performance.

endmenu # "Kernel Features"

menu "Boot options"
Expand Down
11 changes: 11 additions & 0 deletions arch/arm64/configs/defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1322,6 +1322,7 @@ CONFIG_ROCKCHIP_IOMMU=y
CONFIG_TEGRA_IOMMU_SMMU=y
CONFIG_ARM_SMMU=y
CONFIG_ARM_SMMU_V3=y
CONFIG_TEGRA241_CMDQV=y
CONFIG_MTK_IOMMU=y
CONFIG_QCOM_IOMMU=y
CONFIG_REMOTEPROC=y
Expand Down Expand Up @@ -1649,3 +1650,13 @@ CONFIG_CORESIGHT_STM=m
CONFIG_CORESIGHT_CPU_DEBUG=m
CONFIG_CORESIGHT_CTI=m
CONFIG_MEMTEST=y
CONFIG_NVGRACE_GPU_VFIO_PCI=m
CONFIG_NVGRACE_EGM=m
CONFIG_VFIO_DEVICE_CDEV=y
# CONFIG_VFIO_CONTAINER is not set
CONFIG_FAULT_INJECTION=y
CONFIG_IOMMUFD_DRIVER=y
CONFIG_IOMMUFD=y
CONFIG_IOMMUFD_TEST=y
CONFIG_IOMMUFD_VFIO_CONTAINER=y
CONFIG_DMA_MAP_BENCHMARK=y
132 changes: 132 additions & 0 deletions arch/arm64/include/asm/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,138 @@ extern void __memset_io(volatile void __iomem *, int, size_t);
#define memcpy_fromio(a,c,l) __memcpy_fromio((a),(c),(l))
#define memcpy_toio(c,a,l) __memcpy_toio((c),(a),(l))

/*
* The ARM64 iowrite implementation is intended to support drivers that want to
* use write combining. For instance PCI drivers using write combining with a 64
* byte __iowrite64_copy() expect to get a 64 byte MemWr TLP on the PCIe bus.
*
* Newer ARM core have sensitive write combining buffers, it is important that
* the stores be contiguous blocks of store instructions. Normal memcpy
* approaches have a very low chance to generate write combining.
*
* Since this is the only API on ARM64 that should be used with write combining
* it also integrates the DGH hint which is supposed to lower the latency to
* emit the large TLP from the CPU.
*/

static inline void __const_memcpy_toio_aligned32(volatile u32 __iomem *to,
const u32 *from, size_t count)
{
switch (count) {
case 8:
asm volatile("str %w0, [%8, #4 * 0]\n"
"str %w1, [%8, #4 * 1]\n"
"str %w2, [%8, #4 * 2]\n"
"str %w3, [%8, #4 * 3]\n"
"str %w4, [%8, #4 * 4]\n"
"str %w5, [%8, #4 * 5]\n"
"str %w6, [%8, #4 * 6]\n"
"str %w7, [%8, #4 * 7]\n"
:
: "rZ"(from[0]), "rZ"(from[1]), "rZ"(from[2]),
"rZ"(from[3]), "rZ"(from[4]), "rZ"(from[5]),
"rZ"(from[6]), "rZ"(from[7]), "r"(to));
break;
case 4:
asm volatile("str %w0, [%4, #4 * 0]\n"
"str %w1, [%4, #4 * 1]\n"
"str %w2, [%4, #4 * 2]\n"
"str %w3, [%4, #4 * 3]\n"
:
: "rZ"(from[0]), "rZ"(from[1]), "rZ"(from[2]),
"rZ"(from[3]), "r"(to));
break;
case 2:
asm volatile("str %w0, [%2, #4 * 0]\n"
"str %w1, [%2, #4 * 1]\n"
:
: "rZ"(from[0]), "rZ"(from[1]), "r"(to));
break;
case 1:
__raw_writel(*from, to);
break;
default:
BUILD_BUG();
}
}

void __iowrite32_copy_full(void __iomem *to, const void *from, size_t count);

static inline void __const_iowrite32_copy(void __iomem *to, const void *from,
size_t count)
{
if (count == 8 || count == 4 || count == 2 || count == 1) {
__const_memcpy_toio_aligned32(to, from, count);
dgh();
} else {
__iowrite32_copy_full(to, from, count);
}
}

#define __iowrite32_copy(to, from, count) \
(__builtin_constant_p(count) ? \
__const_iowrite32_copy(to, from, count) : \
__iowrite32_copy_full(to, from, count))

static inline void __const_memcpy_toio_aligned64(volatile u64 __iomem *to,
const u64 *from, size_t count)
{
switch (count) {
case 8:
asm volatile("str %x0, [%8, #8 * 0]\n"
"str %x1, [%8, #8 * 1]\n"
"str %x2, [%8, #8 * 2]\n"
"str %x3, [%8, #8 * 3]\n"
"str %x4, [%8, #8 * 4]\n"
"str %x5, [%8, #8 * 5]\n"
"str %x6, [%8, #8 * 6]\n"
"str %x7, [%8, #8 * 7]\n"
:
: "rZ"(from[0]), "rZ"(from[1]), "rZ"(from[2]),
"rZ"(from[3]), "rZ"(from[4]), "rZ"(from[5]),
"rZ"(from[6]), "rZ"(from[7]), "r"(to));
break;
case 4:
asm volatile("str %x0, [%4, #8 * 0]\n"
"str %x1, [%4, #8 * 1]\n"
"str %x2, [%4, #8 * 2]\n"
"str %x3, [%4, #8 * 3]\n"
:
: "rZ"(from[0]), "rZ"(from[1]), "rZ"(from[2]),
"rZ"(from[3]), "r"(to));
break;
case 2:
asm volatile("str %x0, [%2, #8 * 0]\n"
"str %x1, [%2, #8 * 1]\n"
:
: "rZ"(from[0]), "rZ"(from[1]), "r"(to));
break;
case 1:
__raw_writeq(*from, to);
break;
default:
BUILD_BUG();
}
}

void __iowrite64_copy_full(void __iomem *to, const void *from, size_t count);

static inline void __const_iowrite64_copy(void __iomem *to, const void *from,
size_t count)
{
if (count == 8 || count == 4 || count == 2 || count == 1) {
__const_memcpy_toio_aligned64(to, from, count);
dgh();
} else {
__iowrite64_copy_full(to, from, count);
}
}

#define __iowrite64_copy(to, from, count) \
(__builtin_constant_p(count) ? \
__const_iowrite64_copy(to, from, count) : \
__iowrite64_copy_full(to, from, count))

/*
* I/O memory mapping functions.
*/
Expand Down
10 changes: 10 additions & 0 deletions arch/arm64/include/asm/kvm_pgtable.h
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,7 @@ enum kvm_pgtable_stage2_flags {
* @KVM_PGTABLE_PROT_W: Write permission.
* @KVM_PGTABLE_PROT_R: Read permission.
* @KVM_PGTABLE_PROT_DEVICE: Device attributes.
* @KVM_PGTABLE_PROT_NORMAL_NC: Normal noncacheable attributes.
* @KVM_PGTABLE_PROT_SW0: Software bit 0.
* @KVM_PGTABLE_PROT_SW1: Software bit 1.
* @KVM_PGTABLE_PROT_SW2: Software bit 2.
Expand All @@ -208,6 +209,7 @@ enum kvm_pgtable_prot {
KVM_PGTABLE_PROT_R = BIT(2),

KVM_PGTABLE_PROT_DEVICE = BIT(3),
KVM_PGTABLE_PROT_NORMAL_NC = BIT(4),

KVM_PGTABLE_PROT_SW0 = BIT(55),
KVM_PGTABLE_PROT_SW1 = BIT(56),
Expand Down Expand Up @@ -458,6 +460,14 @@ u64 kvm_pgtable_hyp_unmap(struct kvm_pgtable *pgt, u64 addr, u64 size);
*/
u64 kvm_get_vtcr(u64 mmfr0, u64 mmfr1, u32 phys_shift);

/**
* stage2_has_fwb() - Determine whether FWB is supported
* @pgt: Page-table structure initialised by kvm_pgtable_stage2_init*()
*
* Return: True if FWB is supported.
*/
bool stage2_has_fwb(struct kvm_pgtable *pgt);

/**
* kvm_pgtable_stage2_pgd_size() - Helper to compute size of a stage-2 PGD
* @vtcr: Content of the VTCR register.
Expand Down
2 changes: 2 additions & 0 deletions arch/arm64/include/asm/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,13 +173,15 @@
* Memory types for Stage-2 translation
*/
#define MT_S2_NORMAL 0xf
#define MT_S2_NORMAL_NC 0x5
#define MT_S2_DEVICE_nGnRE 0x1

/*
* Memory types for Stage-2 translation when ID_AA64MMFR2_EL1.FWB is 0001
* Stage-2 enforces Normal-WB and Device-nGnRE
*/
#define MT_S2_FWB_NORMAL 6
#define MT_S2_FWB_NORMAL_NC 5
#define MT_S2_FWB_DEVICE_nGnRE 1

#ifdef CONFIG_ARM64_4K_PAGES
Expand Down
Loading