Re: [PATCH] tests/amdgpu: set emit fence flag for multi fence

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



There is a document about how the libdrm copy of the header is to be updated.

Can't find it of hand, but our userspace guys should be able to point out where it is.

One more comment below.

Am 07.07.20 um 15:24 schrieb Zhang, Hawking:
[AMD Public Use]

It seems to me the kernel amdgpu_drm.h doesn't sync up with libdrm amdgpu_drm.h if your patch is based on drm-master.

I'd expect another patch to add AMDGPU_IB_FLAG_EMIT_MEM_SYNC flag in libdrm since kernel already has the flag for a while.

Other than that, the patch is Reviewed-by: Hawking Zhang <Hawking.Zhang@xxxxxxx>

Regards,
Hawking
-----Original Message-----
From: Gao, Likun <Likun.Gao@xxxxxxx>
Sent: Tuesday, July 7, 2020 21:15
To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx
Cc: Zhang, Hawking <Hawking.Zhang@xxxxxxx>; Gao, Likun <Likun.Gao@xxxxxxx>
Subject: [PATCH] tests/amdgpu: set emit fence flag for multi fence

From: Likun Gao <Likun.Gao@xxxxxxx>

Set AMDGPU_IB_FLAG_EMIT_MEM_SYNC flag for specific ASIC when test multi fence.

Signed-off-by: Likun Gao <Likun.Gao@xxxxxxx>
Change-Id: I41e5cb19d9ca72c1d396cc28d1b54c31773fe4d5
---
  include/drm/amdgpu_drm.h   | 2 ++
  tests/amdgpu/basic_tests.c | 6 ++++++
  2 files changed, 8 insertions(+)

diff --git a/include/drm/amdgpu_drm.h b/include/drm/amdgpu_drm.h index 4fe35d60..8a4d7da9 100644
--- a/include/drm/amdgpu_drm.h
+++ b/include/drm/amdgpu_drm.h
@@ -586,6 +586,8 @@ union drm_amdgpu_cs {
   */
  #define AMDGPU_IB_FLAG_RESET_GDS_MAX_WAVE_ID (1 << 4)
+#define AMDGPU_IB_FLAG_EMIT_MEM_SYNC (1 << 6)
+
  struct drm_amdgpu_cs_chunk_ib {
  	__u32 _pad;
  	/** AMDGPU_IB_FLAG_* */
diff --git a/tests/amdgpu/basic_tests.c b/tests/amdgpu/basic_tests.c index 57496c82..c0f7ec33 100644
--- a/tests/amdgpu/basic_tests.c
+++ b/tests/amdgpu/basic_tests.c
@@ -45,6 +45,8 @@ static  amdgpu_device_handle device_handle;  static  uint32_t  major_version;  static  uint32_t  minor_version;  static  uint32_t  family_id;
+static  uint32_t  chip_rev;
+static  uint32_t  chip_id;
static void amdgpu_query_info_test(void); static void amdgpu_command_submission_gfx(void);
@@ -607,6 +609,8 @@ int suite_basic_tests_init(void)
  		return CUE_SINIT_FAILED;
family_id = gpu_info.family_id;
+	chip_rev = gpu_info.chip_rev;
+	chip_id = gpu_info.chip_external_rev;
return CUE_SUCCESS;
  }
@@ -1769,6 +1773,8 @@ static void amdgpu_command_submission_multi_fence_wait_all(bool wait_all)
  	ib_info[0].ib_mc_address = ib_result_ce_mc_address;
  	ib_info[0].size = i;
  	ib_info[0].flags = AMDGPU_IB_FLAG_CE;
+	if (chip_id == (chip_rev + 0x28))

That probably needs an explanation or at least a comment.

Christian.

+		ib_info[0].flags |= AMDGPU_IB_FLAG_EMIT_MEM_SYNC;
/* IT_WAIT_ON_CE_COUNTER */
  	ptr = ib_result_cpu;
--
2.25.1
_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux