From: "Christian König" <ckoenig.leichtzumerken@gmail.com>
To: Jacob He <jacob.he@amd.com>, amd-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/amdgpu: Update SPM_VMID with the job's vmid when application reserves the vmid
Date: Tue, 3 Mar 2020 15:16:31 +0100 [thread overview]
Message-ID: <0bbac128-473d-b8d1-9b5a-ceb25357c81c@gmail.com> (raw)
In-Reply-To: <20200302053529.5736-1-jacob.he@amd.com>
Am 02.03.20 um 06:35 schrieb Jacob He:
> SPM access the video memory according to SPM_VMID. It should be updated
> with the job's vmid right before the job is scheduled. SPM_VMID is a
> global resource
>
> Change-Id: Id3881908960398f87e7c95026a54ff83ff826700
> Signed-off-by: Jacob He <jacob.he@amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index c00696f3017e..c761d3a0b6e8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -1080,8 +1080,12 @@ int amdgpu_vm_flush(struct amdgpu_ring *ring, struct amdgpu_job *job,
> struct dma_fence *fence = NULL;
> bool pasid_mapping_needed = false;
> unsigned patch_offset = 0;
> + bool update_spm_vmid_needed = (job->vm && (job->vm->reserved_vmid[vmhub] != NULL));
> int r;
>
> + if (update_spm_vmid_needed && adev->gfx.rlc.funcs->update_spm_vmid)
> + adev->gfx.rlc.funcs->update_spm_vmid(adev, job->vmid);
> +
It would be better if we could do that asynchronously with a register
write on the ring.
The alternative is that we block for the VM to be idle in
amdgpu_vm_ioctl() before unreserving the VMID.
In other words lock the reservation object of the root PD and call
amdgpu_vm_wait_idle() before calling amdgpu_vmid_free_reserved().
Regards,
Christian.
> if (amdgpu_vmid_had_gpu_reset(adev, id)) {
> gds_switch_needed = true;
> vm_flush_needed = true;
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
next prev parent reply other threads:[~2020-03-03 14:16 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-02 5:35 [PATCH] drm/amdgpu: Update SPM_VMID with the job's vmid when application reserves the vmid Jacob He
2020-03-03 3:05 ` He, Jacob
2020-03-03 14:16 ` Christian König [this message]
2020-03-03 14:34 ` He, Jacob
2020-03-03 15:03 ` Christian König
2020-03-03 15:28 ` He, Jacob
2020-03-03 15:36 ` Christian König
2020-03-03 16:07 ` He, Jacob
2020-03-03 16:09 ` Christian König
2020-03-03 16:12 ` He, Jacob
2020-03-04 4:06 Jacob He
2020-03-05 11:20 ` Christian König
2020-03-05 12:08 Jacob He
2020-03-05 12:24 ` Christian König
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0bbac128-473d-b8d1-9b5a-ceb25357c81c@gmail.com \
--to=ckoenig.leichtzumerken@gmail.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=christian.koenig@amd.com \
--cc=jacob.he@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.