Re: [igt-dev] [PATCH i-g-t 87/89] lib/intel_bb: Remove intel_bb_assign_vm and tests
From: Jason Ekstrand <hidden>
Date: 2021-06-09 14:26:29
On Tue, Apr 27, 2021 at 11:25 PM Zbigniew Kempczyński [off-list ref] wrote:
On Fri, Apr 23, 2021 at 04:52:50PM -0500, Jason Ekstrand wrote:quoted
It's not used by anything other than the tests for that functionality and it relies on setting the VM via SET_CONTEXT_PARAM which is deprecated. Delete it for now. We can add it back in later if it's actually useful and do it properly then. --- lib/intel_batchbuffer.c | 52 ------------------- lib/intel_batchbuffer.h | 3 -- tests/i915/api_intel_bb.c | 104 -------------------------------------- 3 files changed, 159 deletions(-)diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c index 0b2c5b21..c300e26e 100644 --- a/lib/intel_batchbuffer.c +++ b/lib/intel_batchbuffer.c@@ -1513,14 +1513,6 @@ static void __intel_bb_destroy_cache(struct intel_bb *ibb) ibb->root = NULL; } -static void __intel_bb_detach_intel_bufs(struct intel_bb *ibb) -{ - struct intel_buf *entry, *tmp; - - igt_list_for_each_entry_safe(entry, tmp, &ibb->intel_bufs, link) - intel_bb_detach_intel_buf(ibb, entry);You can also remove intel_bb_detach_intel_buf(), I think keeping it doesn't makes sense anymore. Then:
Done. It'll be in the next send.
Reviewed-by: Zbigniew Kempczyński <redacted>
Thanks!
-- Zbigniewquoted
-} - static void __intel_bb_remove_intel_bufs(struct intel_bb *ibb) { struct intel_buf *entry, *tmp;@@ -1649,50 +1641,6 @@ int intel_bb_sync(struct intel_bb *ibb) return ret; } -uint64_t intel_bb_assign_vm(struct intel_bb *ibb, uint64_t allocator, - uint32_t vm_id) -{ - struct drm_i915_gem_context_param arg = { - .param = I915_CONTEXT_PARAM_VM, - }; - uint64_t prev_allocator = ibb->allocator_handle; - bool closed = false; - - if (ibb->vm_id == vm_id) { - igt_debug("Skipping to assign same vm_id: %u\n", vm_id); - return 0; - } - - /* Cannot switch if someone keeps bb refcount */ - igt_assert(ibb->refcount == 1); - - /* Detach intel_bufs and remove bb handle */ - __intel_bb_detach_intel_bufs(ibb); - intel_bb_remove_object(ibb, ibb->handle, ibb->batch_offset, ibb->size); - - /* Cache + objects are not valid after change anymore */ - __intel_bb_destroy_objects(ibb); - __intel_bb_destroy_cache(ibb); - - /* Attach new allocator */ - ibb->allocator_handle = allocator; - - /* Setparam */ - ibb->vm_id = vm_id; - - /* Skip set param, we likely return to default vm */ - if (vm_id) { - arg.ctx_id = ibb->ctx; - arg.value = vm_id; - gem_context_set_param(ibb->i915, &arg); - } - - /* Recreate bb */ - intel_bb_reset(ibb, false); - - return closed ? 0 : prev_allocator; -} - /* * intel_bb_print: * @ibb: pointer to intel_bbdiff --git a/lib/intel_batchbuffer.h b/lib/intel_batchbuffer.h index 6f148713..a2056a66 100644 --- a/lib/intel_batchbuffer.h +++ b/lib/intel_batchbuffer.h@@ -523,9 +523,6 @@ static inline void intel_bb_unref(struct intel_bb *ibb) void intel_bb_reset(struct intel_bb *ibb, bool purge_objects_cache); int intel_bb_sync(struct intel_bb *ibb); -uint64_t intel_bb_assign_vm(struct intel_bb *ibb, uint64_t allocator, - uint32_t vm_id); - void intel_bb_print(struct intel_bb *ibb); void intel_bb_dump(struct intel_bb *ibb, const char *filename); void intel_bb_set_debug(struct intel_bb *ibb, bool debug);diff --git a/tests/i915/api_intel_bb.c b/tests/i915/api_intel_bb.c index eafa856d..c3b4f75d 100644 --- a/tests/i915/api_intel_bb.c +++ b/tests/i915/api_intel_bb.c@@ -240,107 +240,6 @@ static void bb_with_allocator(struct buf_ops *bops) intel_bb_destroy(ibb); } -static void bb_with_vm(struct buf_ops *bops) -{ - int i915 = buf_ops_get_fd(bops); - struct drm_i915_gem_context_param arg = { - .param = I915_CONTEXT_PARAM_VM, - }; - struct intel_bb *ibb; - struct intel_buf *src, *dst, *gap; - uint32_t ctx = 0, vm_id1, vm_id2; - uint64_t prev_vm, vm; - uint64_t src_addr[5], dst_addr[5]; - - igt_require(gem_uses_full_ppgtt(i915)); - - ibb = intel_bb_create_with_allocator(i915, ctx, PAGE_SIZE, - INTEL_ALLOCATOR_SIMPLE); - if (debug_bb) - intel_bb_set_debug(ibb, true); - - src = intel_buf_create(bops, 4096/32, 32, 8, 0, I915_TILING_NONE, - I915_COMPRESSION_NONE); - dst = intel_buf_create(bops, 4096/32, 32, 8, 0, I915_TILING_NONE, - I915_COMPRESSION_NONE); - gap = intel_buf_create(bops, 4096, 128, 8, 0, I915_TILING_NONE, - I915_COMPRESSION_NONE); - - /* vm for second blit */ - vm_id1 = gem_vm_create(i915); - - /* Get vm_id for default vm */ - arg.ctx_id = ctx; - gem_context_get_param(i915, &arg); - vm_id2 = arg.value; - - igt_debug("Vm_id1: %u\n", vm_id1); - igt_debug("Vm_id2: %u\n", vm_id2); - - /* First blit without set calling setparam */ - intel_bb_copy_intel_buf(ibb, dst, src, 4096); - src_addr[0] = src->addr.offset; - dst_addr[0] = dst->addr.offset; - igt_debug("step1: src: 0x%llx, dst: 0x%llx\n", - (long long) src_addr[0], (long long) dst_addr[0]); - - /* Open new allocator with vm_id */ - vm = intel_allocator_open_vm(i915, vm_id1, INTEL_ALLOCATOR_SIMPLE); - prev_vm = intel_bb_assign_vm(ibb, vm, vm_id1); - - intel_bb_add_intel_buf(ibb, gap, false); - intel_bb_copy_intel_buf(ibb, dst, src, 4096); - src_addr[1] = src->addr.offset; - dst_addr[1] = dst->addr.offset; - igt_debug("step2: src: 0x%llx, dst: 0x%llx\n", - (long long) src_addr[1], (long long) dst_addr[1]); - - /* Back with default vm */ - intel_bb_assign_vm(ibb, prev_vm, vm_id2); - intel_bb_add_intel_buf(ibb, gap, false); - intel_bb_copy_intel_buf(ibb, dst, src, 4096); - src_addr[2] = src->addr.offset; - dst_addr[2] = dst->addr.offset; - igt_debug("step3: src: 0x%llx, dst: 0x%llx\n", - (long long) src_addr[2], (long long) dst_addr[2]); - - /* And exchange one more time */ - intel_bb_assign_vm(ibb, vm, vm_id1); - intel_bb_copy_intel_buf(ibb, dst, src, 4096); - src_addr[3] = src->addr.offset; - dst_addr[3] = dst->addr.offset; - igt_debug("step4: src: 0x%llx, dst: 0x%llx\n", - (long long) src_addr[3], (long long) dst_addr[3]); - - /* Back with default vm */ - gem_vm_destroy(i915, vm_id1); - gem_vm_destroy(i915, vm_id2); - intel_bb_assign_vm(ibb, prev_vm, 0); - - /* We can close it after assign previous vm to ibb */ - intel_allocator_close(vm); - - /* Try default vm still works */ - intel_bb_copy_intel_buf(ibb, dst, src, 4096); - src_addr[4] = src->addr.offset; - dst_addr[4] = dst->addr.offset; - igt_debug("step5: src: 0x%llx, dst: 0x%llx\n", - (long long) src_addr[4], (long long) dst_addr[4]); - - /* Addresses should match for vm and prev_vm blits */ - igt_assert_eq(src_addr[0], src_addr[2]); - igt_assert_eq(dst_addr[0], dst_addr[2]); - igt_assert_eq(src_addr[1], src_addr[3]); - igt_assert_eq(dst_addr[1], dst_addr[3]); - igt_assert_eq(src_addr[2], src_addr[4]); - igt_assert_eq(dst_addr[2], dst_addr[4]); - - intel_buf_destroy(src); - intel_buf_destroy(dst); - intel_buf_destroy(gap); - intel_bb_destroy(ibb); -} - /* * Make sure we lead to realloc in the intel_bb. */@@ -1557,9 +1456,6 @@ igt_main_args("dpib", NULL, help_str, opt_handler, NULL) igt_subtest("bb-with-allocator") bb_with_allocator(bops); - igt_subtest("bb-with-vm") - bb_with_vm(bops); - igt_subtest("lot-of-buffers") lot_of_buffers(bops); --2.31.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev
_______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev