Ok, then we have a problem.

Alex what do you think?

Christian.

Am 13.04.23 um 11:21 schrieb Marek Olšák:
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.

Firmware shouldn't use it because using it would increase preemption latency.

Marek

On Sun, Apr 9, 2023, 11:21 Christian König <[email protected]> wrote:

    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.

    But as far as I know the firmware needs valid VAs for all three
    buffers or won't work correctly.

    Christian.

    Am 06.04.23 um 17:01 schrieb Marek Olšák:
    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.

    Marek

    On Thu, Apr 6, 2023 at 6:31 AM Christian König
    <[email protected]> wrote:

        That's what I thought as well, but Mitch/Hans insisted on that.

        We should probably double check internally.

        Christian.

        Am 06.04.23 um 11:43 schrieb Marek Olšák:
        GDS memory isn't used on gfx11. Only GDS OA is used.

        Marek

        On Thu, Apr 6, 2023 at 5:09 AM Christian König
        <[email protected]> wrote:

            Why that?

            This is the save buffer for GDS, not the old style GDS BOs.

            Christian.

            Am 06.04.23 um 09:36 schrieb Marek Olšák:
            gds_va is unnecessary.

            Marek

            On Thu, Mar 30, 2023 at 3:18 PM Alex Deucher
            <[email protected]> wrote:

                For GFX11, the UMD needs to allocate some shadow
                buffers
                to be used for preemption.  The UMD allocates the
                buffers
                and passes the GPU virtual address to the kernel
                since the
                kernel will program the packet that specified these
                addresses as part of its IB submission frame.

                v2: UMD passes shadow init to tell kernel when to
                initialize
                    the shadow

                Reviewed-by: Christian König <[email protected]>
                Signed-off-by: Alex Deucher <[email protected]>
                ---
                 include/uapi/drm/amdgpu_drm.h | 10 ++++++++++
                 1 file changed, 10 insertions(+)

                diff --git a/include/uapi/drm/amdgpu_drm.h
                b/include/uapi/drm/amdgpu_drm.h
                index b6eb90df5d05..3d9474af6566 100644
                --- a/include/uapi/drm/amdgpu_drm.h
                +++ b/include/uapi/drm/amdgpu_drm.h
                @@ -592,6 +592,7 @@ struct drm_amdgpu_gem_va {
                 #define AMDGPU_CHUNK_ID_SCHEDULED_DEPENDENCIES 0x07
                 #define AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_WAIT   0x08
                 #define AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_SIGNAL 0x09
                +#define AMDGPU_CHUNK_ID_CP_GFX_SHADOW  0x0a

                 struct drm_amdgpu_cs_chunk {
                        __u32           chunk_id;
                @@ -708,6 +709,15 @@ struct drm_amdgpu_cs_chunk_data {
                        };
                 };

                +#define
                AMDGPU_CS_CHUNK_CP_GFX_SHADOW_FLAGS_INIT_SHADOW    
                   0x1
                +
                +struct drm_amdgpu_cs_chunk_cp_gfx_shadow {
                +       __u64 shadow_va;
                +       __u64 csa_va;
                +       __u64 gds_va;
                +       __u64 flags;
                +};
                +
                 /*
                  *  Query h/w info: Flag that this is integrated
                (a.h.a. fusion) GPU
                  *
-- 2.39.2




Reply via email to