<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
Ok, then we have a problem.<br>
<br>
Alex what do you think?<br>
<br>
Christian.<br>
<br>
<div class="moz-cite-prefix">Am 13.04.23 um 11:21 schrieb Marek
Olšák:<br>
</div>
<blockquote type="cite"
cite="mid:CAAxE2A5mf8J_1JJvgPgx-G07zcc3vcHOD6jWUXL8Mhx3g-Zufw@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="auto">
<div>That's not why it was removed. It was removed because
userspace doesn't use GDS memory and gds_va is always going to
be 0.</div>
<div dir="auto"><br>
</div>
<div dir="auto">Firmware shouldn't use it because using it would
increase preemption latency.</div>
<div dir="auto"><br>
</div>
<div dir="auto">Marek<br>
<br>
<div class="gmail_quote" dir="auto">
<div dir="ltr" class="gmail_attr">On Sun, Apr 9, 2023, 11:21
Christian König <<a
href="mailto:ckoenig.leichtzumerken@gmail.com"
moz-do-not-send="true" class="moz-txt-link-freetext">ckoenig.leichtzumerken@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div> We removed the GDS information because they were
unnecessary. The GDS size was already part of the device
info before we added the shadow info.<br>
<br>
But as far as I know the firmware needs valid VAs for
all three buffers or won't work correctly.<br>
<br>
Christian.<br>
<br>
<div>Am 06.04.23 um 17:01 schrieb Marek Olšák:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>There is no GDS shadowing info in the device
info uapi, so userspace can't create any GDS
buffer and thus can't have any GDS va. It's a uapi
issue, not what firmware wants to do.<br>
</div>
<div><br>
</div>
<div>Marek<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Thu, Apr 6,
2023 at 6:31 AM Christian König <<a
href="mailto:ckoenig.leichtzumerken@gmail.com"
target="_blank" rel="noreferrer"
moz-do-not-send="true"
class="moz-txt-link-freetext">ckoenig.leichtzumerken@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px
0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div> That's what I thought as well, but
Mitch/Hans insisted on that.<br>
<br>
We should probably double check internally.<br>
<br>
Christian.<br>
<br>
<div>Am 06.04.23 um 11:43 schrieb Marek Olšák:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>GDS memory isn't used on gfx11. Only
GDS OA is used.<br>
</div>
<div><br>
</div>
<div>Marek<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Thu,
Apr 6, 2023 at 5:09 AM Christian König
<<a
href="mailto:christian.koenig@amd.com"
target="_blank" rel="noreferrer"
moz-do-not-send="true"
class="moz-txt-link-freetext">christian.koenig@amd.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div> Why that?<br>
<br>
This is the save buffer for GDS, not the
old style GDS BOs.<br>
<br>
Christian.<br>
<br>
<div>Am 06.04.23 um 09:36 schrieb Marek
Olšák:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>gds_va is unnecessary.</div>
<div><br>
</div>
<div>Marek<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On
Thu, Mar 30, 2023 at 3:18 PM Alex
Deucher <<a
href="mailto:alexander.deucher@amd.com"
target="_blank" rel="noreferrer"
moz-do-not-send="true"
class="moz-txt-link-freetext">alexander.deucher@amd.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">For
GFX11, the UMD needs to allocate
some shadow buffers<br>
to be used for preemption. The
UMD allocates the buffers<br>
and passes the GPU virtual address
to the kernel since the<br>
kernel will program the packet
that specified these<br>
addresses as part of its IB
submission frame.<br>
<br>
v2: UMD passes shadow init to tell
kernel when to initialize<br>
the shadow<br>
<br>
Reviewed-by: Christian König <<a
href="mailto:christian.koenig@amd.com" target="_blank" rel="noreferrer"
moz-do-not-send="true"
class="moz-txt-link-freetext">christian.koenig@amd.com</a>><br>
Signed-off-by: Alex Deucher <<a
href="mailto:alexander.deucher@amd.com" target="_blank" rel="noreferrer"
moz-do-not-send="true"
class="moz-txt-link-freetext">alexander.deucher@amd.com</a>><br>
---<br>
include/uapi/drm/amdgpu_drm.h |
10 ++++++++++<br>
1 file changed, 10 insertions(+)<br>
<br>
diff --git
a/include/uapi/drm/amdgpu_drm.h
b/include/uapi/drm/amdgpu_drm.h<br>
index b6eb90df5d05..3d9474af6566
100644<br>
---
a/include/uapi/drm/amdgpu_drm.h<br>
+++
b/include/uapi/drm/amdgpu_drm.h<br>
@@ -592,6 +592,7 @@ struct
drm_amdgpu_gem_va {<br>
#define
AMDGPU_CHUNK_ID_SCHEDULED_DEPENDENCIES
0x07<br>
#define
AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_WAIT
0x08<br>
#define
AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_SIGNAL
0x09<br>
+#define
AMDGPU_CHUNK_ID_CP_GFX_SHADOW
0x0a<br>
<br>
struct drm_amdgpu_cs_chunk {<br>
__u32 chunk_id;<br>
@@ -708,6 +709,15 @@ struct
drm_amdgpu_cs_chunk_data {<br>
};<br>
};<br>
<br>
+#define
AMDGPU_CS_CHUNK_CP_GFX_SHADOW_FLAGS_INIT_SHADOW
0x1<br>
+<br>
+struct
drm_amdgpu_cs_chunk_cp_gfx_shadow
{<br>
+ __u64 shadow_va;<br>
+ __u64 csa_va;<br>
+ __u64 gds_va;<br>
+ __u64 flags;<br>
+};<br>
+<br>
/*<br>
* Query h/w info: Flag that
this is integrated (a.h.a. fusion)
GPU<br>
*<br>
-- <br>
2.39.2<br>
<br>
</blockquote>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>