[igt-dev] [PATCH i-g-t v2 2/2] tests/gem_exec_whisper: Fix offsets handling and separate allocators
Kamil Konieczny
kamil.konieczny at linux.intel.com
Mon Dec 19 13:25:52 UTC 2022
On 2022-12-19 at 12:58:34 +0100, Zbigniew Kempczyński wrote:
> For multiprocess scenarios where drm fds are reopened new contexts
> created will have same ctx id. Since reloc allocator started
> tracking allocations we have ensure it will be opened on separate
> <fd, ctx> pair. Previously reloc simply incremented offsets (even in
> multiprocess scenarios) so there were no risk to reuse/rebind offsets
> from another process. Also fix bug in offset release - put_offset()
> should contain handle, not offset.
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> ---
> tests/i915/gem_exec_whisper.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/tests/i915/gem_exec_whisper.c b/tests/i915/gem_exec_whisper.c
> index c3fc5ba804..616231aa96 100644
> --- a/tests/i915/gem_exec_whisper.c
> +++ b/tests/i915/gem_exec_whisper.c
> @@ -106,10 +106,10 @@ static void init_hang(struct hang *h, int fd, const intel_ctx_cfg_t *cfg)
> if (gem_has_contexts(fd)) {
> h->ctx = intel_ctx_create(h->fd, cfg);
> h->execbuf.rsvd1 = h->ctx->id;
> - h->ahnd = get_reloc_ahnd(fd, h->ctx->id);
> + h->ahnd = get_reloc_ahnd(h->fd, h->ctx->id);
> } else {
> h->ctx = NULL;
> - h->ahnd = get_reloc_ahnd(fd, 0);
> + h->ahnd = get_reloc_ahnd(h->fd, 0);
> }
>
> memset(&h->execbuf, 0, sizeof(h->execbuf));
> @@ -174,7 +174,8 @@ static void submit_hang(struct hang *h, unsigned *engines, int nengine, unsigned
>
> static void fini_hang(struct hang *h)
> {
> - put_offset(h->ahnd, h->bb_offset);
> + gem_close(h->fd, h->obj.handle);
> + put_offset(h->ahnd, h->obj.handle);
> put_ahnd(h->ahnd);
> intel_ctx_destroy(h->fd, h->ctx);
> close(h->fd);
> --
> 2.34.1
>
More information about the igt-dev
mailing list