History log of /src/sys/external/bsd/drm2/linux/linux_dma_resv.c |
Revision | | Date | Author | Comments |
1.22 |
| 15-Feb-2022 |
riastradh | drm: Use KM_SLEEP to allocate reservation fence arrays.
Except as a fast path in an RCU reader.
The array sizes appear to be reasonably small and not trivially controlled by userland, from what I can tell, so if my impression is accurate, it is reasonable to sleep for allocation here.
|
1.21 |
| 19-Dec-2021 |
riastradh | drm: Fix comment about dma_resv_lock_* return values.
|
1.20 |
| 19-Dec-2021 |
riastradh | drm: Paranoia: handle fencep=null, fence!=null, and 0 shared.
Not sure this is possible but I don't know the API well enough to prove it can't happen.
|
1.19 |
| 19-Dec-2021 |
riastradh | drm: Fix missing restart on race in dma_resv_get_fences_rcu.
|
1.18 |
| 19-Dec-2021 |
riastradh | drm: Support dma_resv_reserve_shared(..., num_fences>1).
|
1.17 |
| 19-Dec-2021 |
riastradh | drm: Implement drm_resv_get_fences_rcu with null fencep.
|
1.16 |
| 19-Dec-2021 |
riastradh | drm: Factor dma_fence_put out of multiple dma_resv_do_poll branches.
|
1.15 |
| 19-Dec-2021 |
riastradh | drm: Fix dma_resv_test_signaled_rcu and dma_resv_wait_timeout_rcu.
Make them implemented the semantics as documented like Linux does: only test the exclusive fence if there's no shared fences.
|
1.14 |
| 19-Dec-2021 |
riastradh | drm: Make sure to check read ticket after reading shared fences.
Not entirely sure it was a bug not to do that, but let's make it easy to prove that we got a consistent snapshot of the whole picture.
|
1.13 |
| 19-Dec-2021 |
riastradh | drm: Write comment for dma_resv_get_fences_rcu semantics.
|
1.12 |
| 19-Dec-2021 |
riastradh | drm: Factor out logic to read snapshot of fences in dma_resv.
Should make auditing a little easier.
|
1.11 |
| 19-Dec-2021 |
riastradh | amdgpu: Another pass through.
amdgpu_object.c amdgpu_pci.c amdgpu_pm.c amdgpu_polaris10_smumgr.c amdgpu_pp_psm.c amdgpu_ppatomctrl.c amdgpu_ppatomfwctrl.c amdgpu_process_pptables_v1_0.o amdgpu_psp.o amdgpu_psp_v10_0.c amdgpu_psp_v11_0.c amdgpu_psp_v12_0.c amdgpu_psp_v3_1.c amdgpu_ras.c amdgpu_ras_eeprom.c amdgpu_rc_calc.c amdgpu_rc_calc_dpi.c amdgpu_ring.c amdgpu_rlc.c amdgpu_rn_clk_mgr.c amdgpu_sdma_v3_0.c amdgpu_sdma_v4_0.c amdgpu_sdma_v5_0.c amdgpu_si.c amdgpu_si_dma.c amdgpu_si_dpm.c amdgpu_smu.c amdgpu_smu10_hwmgr.c amdgpu_smu7_hwmgr.c amdgpu_smu8_hwmgr.c amdgpu_smu8_smumgr.c amdgpu_smu_v11_0.c (and a sprinkling of consts) amdgpu_smu_v11_0_i2c.c amdgpu_soc15.c amdgpu_tonga_smumgr.c amdgpu_ttm.c amdgpu_ucode.c amdgpu_uvd.c amdgpu_uvd_v5_0.c amdgpu_uvd_v6_0.c amdgpu_uvd_v7_0.c amdgpu_vce.c amdgpu_vce_v2_0.c amdgpu_vce_v4_0.c amdgpu_vcn_v1_0.c amdgpu_vcn_v2_0.c amdgpu_vcn_v2_5.c amdgpu_vega10_hwmgr.c amdgpu_vega10_powertune.c amdgpu_vega10_processpptables.c amdgpu_vega10_reg_init.c amdgpu_vega12_hwmgr.c amdgpu_vega20_hwmgr.c amdgpu_vega20_ppt.c amdgpu_vega20_reg_init.c amdgpu_vi.c amdgpu_virt.c amdgpu_vram_mgr.c amdgpu_xgmi.c -- disable (for now?) amdgpufb.c
|
1.10 |
| 19-Dec-2021 |
riastradh | drm: Fence leak audit. No functional change intended.
Sprinkle nulling out variables, add kasserts to reflect them, and propagate their consequences to eliminate dead code. Should make it easier to detect similar leak bugs.
|
1.9 |
| 19-Dec-2021 |
riastradh | drm: Fix sense of conditional to avoid null pointer dereference.
|
1.8 |
| 19-Dec-2021 |
riastradh | drm: Paranoia: null out fence if unreferenceable.
|
1.7 |
| 19-Dec-2021 |
riastradh | drm: Membar audit for dma_resv.
Try to pacify kcsan (untested) and make it clearer what ordering matters.
|
1.6 |
| 19-Dec-2021 |
riastradh | drm: Use atomic_store_release/load_consume in linux_dma_resv.c.
At least, for robj->fence and robj->fence_excl. Need to review list->shared_count and list->shared[i] too.
|
1.5 |
| 19-Dec-2021 |
riastradh | drm: Plug fence leak
|
1.4 |
| 19-Dec-2021 |
riastradh | Implement dma_resv_locking_ctx more carefully.
|
1.3 |
| 19-Dec-2021 |
riastradh | dma_resv_reserve_shared takes one more argument, num_fences
Fortunately it's ~always 1, and (XXX) I assume our implementation assumes this, too. But assert it.
Author: Maya Rashish <maya@NetBSD.org>
|
1.2 |
| 19-Dec-2021 |
riastradh | Add slow path versions of to drm_resv_lock.
|
1.1 |
| 19-Dec-2021 |
riastradh | Rename reservation_object -> dma_resv.
|