mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-22 11:19:33 +07:00
aa32f11691
This is another round of bug fixing and cleanup. This time the focus is on the driver pattern to use mmu notifiers to monitor a VA range. This code is lifted out of many drivers and hmm_mirror directly into the mmu_notifier core and written using the best ideas from all the driver implementations. This removes many bugs from the drivers and has a very pleasing diffstat. More drivers can still be converted, but that is for another cycle. - A shared branch with RDMA reworking the RDMA ODP implementation - New mmu_interval_notifier API. This is focused on the use case of monitoring a VA and simplifies the process for drivers - A common seq-count locking scheme built into the mmu_interval_notifier API usable by drivers that call get_user_pages() or hmm_range_fault() with the VA range - Conversion of mlx5 ODP, hfi1, radeon, nouveau, AMD GPU, and Xen GntDev drivers to the new API. This deletes a lot of wonky driver code. - Two improvements for hmm_range_fault(), from testing done by Ralph -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfB7FMLh+8QxL+6i3OG33FX4gmxoFAl3cCjQACgkQOG33FX4g mxpp8xAAiR9iOdT28m/tx1GF31XludrMhRZVIiz0vmCIxIiAkWekWEfAEVm9PDnh wdrxTJohSs+B65AK3sfToOM3AIuNCuFVWmbbHI5qmOO76vaSvcZa905Z++pNsawO Bn8mgRCprYoFHcxWLvTvnA5U0g1S2BSSOwBSZI43CbEnVvHjYAR6MnvRqfGMk+NF bf8fTk/x+fl0DCemhynlBLuJkogzoE2Hgl0yPY5bFna4PktOxdpa1yPaQsiqZ7e6 2s2NtM3pbMBJk0W42q5BU+aPhiqfxFFszasPSLBduXrD2xDsG76HJdHj5VydKmfL nelG4BvqJozXTEZWvTEePYhCqaZ41eJZ7Asw8BXtmacVqE5mDlTXo/Zdgbz7yEOR mI5MVyjD5rauZJldUOWXbwrPoWVFRvboauehiSgqvxvT9HvlFp9GKObSuu4gubBQ mzxs4t48tPhA7bswLmw0/pETSogFuVDfaB7hsyY0gi8EwxMFMpw2qFypm1PEEF+C BuUxCSShzvNKrraNe5PWaNNFd3AzIwAOWJHE+poH4bCoXQVr5nA+rq2gnHkdY5vq /xrBCyxkf0U05YoFGYembPVCInMehzp9Xjy8V+SueSvCg2/TYwGDCgGfsbe9dNOP Bc40JpS7BDn5w9nyLUJmOx7jfruNV6kx1QslA7NDDrB/rzOlsEc= =Hj8a -----END PGP SIGNATURE----- Merge tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma Pull hmm updates from Jason Gunthorpe: "This is another round of bug fixing and cleanup. This time the focus is on the driver pattern to use mmu notifiers to monitor a VA range. This code is lifted out of many drivers and hmm_mirror directly into the mmu_notifier core and written using the best ideas from all the driver implementations. This removes many bugs from the drivers and has a very pleasing diffstat. More drivers can still be converted, but that is for another cycle. - A shared branch with RDMA reworking the RDMA ODP implementation - New mmu_interval_notifier API. This is focused on the use case of monitoring a VA and simplifies the process for drivers - A common seq-count locking scheme built into the mmu_interval_notifier API usable by drivers that call get_user_pages() or hmm_range_fault() with the VA range - Conversion of mlx5 ODP, hfi1, radeon, nouveau, AMD GPU, and Xen GntDev drivers to the new API. This deletes a lot of wonky driver code. - Two improvements for hmm_range_fault(), from testing done by Ralph" * tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: mm/hmm: remove hmm_range_dma_map and hmm_range_dma_unmap mm/hmm: make full use of walk_page_range() xen/gntdev: use mmu_interval_notifier_insert mm/hmm: remove hmm_mirror and related drm/amdgpu: Use mmu_interval_notifier instead of hmm_mirror drm/amdgpu: Use mmu_interval_insert instead of hmm_mirror drm/amdgpu: Call find_vma under mmap_sem nouveau: use mmu_interval_notifier instead of hmm_mirror nouveau: use mmu_notifier directly for invalidate_range_start drm/radeon: use mmu_interval_notifier_insert RDMA/hfi1: Use mmu_interval_notifier_insert for user_exp_rcv RDMA/odp: Use mmu_interval_notifier_insert() mm/hmm: define the pre-processor related parts of hmm.h even if disabled mm/hmm: allow hmm_range to be used with a mmu_interval_notifier or hmm_mirror mm/mmu_notifier: add an interval tree notifier mm/mmu_notifier: define the header pre-processor parts even if disabled mm/hmm: allow snapshot of the special zero page |
||
---|---|---|
.. | ||
reg_srcs | ||
.gitignore | ||
atom-bits.h | ||
atom-names.h | ||
atom-types.h | ||
atom.c | ||
atom.h | ||
atombios_crtc.c | ||
atombios_dp.c | ||
atombios_encoders.c | ||
atombios_i2c.c | ||
atombios.h | ||
avivod.h | ||
btc_dpm.c | ||
btc_dpm.h | ||
btcd.h | ||
cayman_blit_shaders.c | ||
cayman_blit_shaders.h | ||
ci_dpm.c | ||
ci_dpm.h | ||
ci_smc.c | ||
cik_blit_shaders.c | ||
cik_blit_shaders.h | ||
cik_reg.h | ||
cik_sdma.c | ||
cik.c | ||
cikd.h | ||
clearstate_cayman.h | ||
clearstate_ci.h | ||
clearstate_defs.h | ||
clearstate_evergreen.h | ||
clearstate_si.h | ||
cypress_dpm.c | ||
cypress_dpm.h | ||
dce3_1_afmt.c | ||
dce6_afmt.c | ||
evergreen_blit_shaders.c | ||
evergreen_blit_shaders.h | ||
evergreen_cs.c | ||
evergreen_dma.c | ||
evergreen_hdmi.c | ||
evergreen_reg.h | ||
evergreen_smc.h | ||
evergreen.c | ||
evergreend.h | ||
Kconfig | ||
kv_dpm.c | ||
kv_dpm.h | ||
kv_smc.c | ||
Makefile | ||
mkregtable.c | ||
ni_dma.c | ||
ni_dpm.c | ||
ni_dpm.h | ||
ni_reg.h | ||
ni.c | ||
nid.h | ||
nislands_smc.h | ||
ObjectID.h | ||
ppsmc.h | ||
pptable.h | ||
r100_track.h | ||
r100.c | ||
r100d.h | ||
r200.c | ||
r300_reg.h | ||
r300.c | ||
r300d.h | ||
r420.c | ||
r420d.h | ||
r500_reg.h | ||
r520.c | ||
r520d.h | ||
r600_blit_shaders.c | ||
r600_blit_shaders.h | ||
r600_cs.c | ||
r600_dma.c | ||
r600_dpm.c | ||
r600_dpm.h | ||
r600_hdmi.c | ||
r600_reg.h | ||
r600.c | ||
r600d.h | ||
radeon_acpi.c | ||
radeon_acpi.h | ||
radeon_agp.c | ||
radeon_asic.c | ||
radeon_asic.h | ||
radeon_atombios.c | ||
radeon_atpx_handler.c | ||
radeon_audio.c | ||
radeon_audio.h | ||
radeon_benchmark.c | ||
radeon_bios.c | ||
radeon_clocks.c | ||
radeon_combios.c | ||
radeon_connectors.c | ||
radeon_cs.c | ||
radeon_cursor.c | ||
radeon_device.c | ||
radeon_display.c | ||
radeon_dp_auxch.c | ||
radeon_dp_mst.c | ||
radeon_drv.c | ||
radeon_drv.h | ||
radeon_encoders.c | ||
radeon_family.h | ||
radeon_fb.c | ||
radeon_fence.c | ||
radeon_gart.c | ||
radeon_gem.c | ||
radeon_i2c.c | ||
radeon_ib.c | ||
radeon_irq_kms.c | ||
radeon_kms.c | ||
radeon_legacy_crtc.c | ||
radeon_legacy_encoders.c | ||
radeon_legacy_tv.c | ||
radeon_mn.c | ||
radeon_mode.h | ||
radeon_object.c | ||
radeon_object.h | ||
radeon_pm.c | ||
radeon_prime.c | ||
radeon_reg.h | ||
radeon_ring.c | ||
radeon_sa.c | ||
radeon_semaphore.c | ||
radeon_sync.c | ||
radeon_test.c | ||
radeon_trace_points.c | ||
radeon_trace.h | ||
radeon_ttm.c | ||
radeon_ucode.c | ||
radeon_ucode.h | ||
radeon_uvd.c | ||
radeon_vce.c | ||
radeon_vm.c | ||
radeon.h | ||
rs100d.h | ||
rs400.c | ||
rs400d.h | ||
rs600.c | ||
rs600d.h | ||
rs690.c | ||
rs690d.h | ||
rs780_dpm.c | ||
rs780_dpm.h | ||
rs780d.h | ||
rv6xx_dpm.c | ||
rv6xx_dpm.h | ||
rv6xxd.h | ||
rv200d.h | ||
rv250d.h | ||
rv350d.h | ||
rv515.c | ||
rv515d.h | ||
rv730_dpm.c | ||
rv730d.h | ||
rv740_dpm.c | ||
rv740d.h | ||
rv770_dma.c | ||
rv770_dpm.c | ||
rv770_dpm.h | ||
rv770_smc.c | ||
rv770_smc.h | ||
rv770.c | ||
rv770d.h | ||
si_blit_shaders.c | ||
si_blit_shaders.h | ||
si_dma.c | ||
si_dpm.c | ||
si_dpm.h | ||
si_reg.h | ||
si_smc.c | ||
si.c | ||
sid.h | ||
sislands_smc.h | ||
smu7_discrete.h | ||
smu7_fusion.h | ||
smu7.h | ||
sumo_dpm.c | ||
sumo_dpm.h | ||
sumo_smc.c | ||
sumod.h | ||
trinity_dpm.c | ||
trinity_dpm.h | ||
trinity_smc.c | ||
trinityd.h | ||
uvd_v1_0.c | ||
uvd_v2_2.c | ||
uvd_v3_1.c | ||
uvd_v4_2.c | ||
vce_v1_0.c | ||
vce_v2_0.c |