[PATCH 2/2] drm/amdkfd: Query vmid pasid mapping through stored info
Kuehling, Felix
Felix.Kuehling at amd.com
Thu Sep 26 20:07:56 UTC 2019
On 2019-09-26 3:46 p.m., Zhao, Yong wrote:
> Because we record the mapping in the software, we can query pasid
> through vmid using the stored mapping instead of reading from ATC
> registers.
>
> This also prepares for the defeatured ATC block in future ASICs.
>
> Change-Id: I781cb9d30dc0cc93379908ff1cf8da798bb26f13
> Signed-off-by: Yong Zhao <Yong.Zhao at amd.com>
> ---
> drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c b/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c
> index ab8a695c4a3c..754c052b7d72 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c
> @@ -58,8 +58,9 @@ static bool event_interrupt_isr_v9(struct kfd_dev *dev,
> memcpy(patched_ihre, ih_ring_entry,
> dev->device_info->ih_ring_entry_size);
>
> - pasid = dev->kfd2kgd->get_atc_vmid_pasid_mapping_pasid(
> - dev->kgd, vmid);
> + pasid = dev->dqm->vmid_pasid[vmid];
> + if (!pasid)
> + pr_err("pasid is not queried correctly\n");
This error message is not helpful. A helpful message may be something
like "No PASID assigned for VMID %d". That said, printing error messages
in an interrupt handler that can be potentially very frequent is not the
best idea. There is already a WARN_ONCE a few lines below that should be
triggered if PASID is not assigned.
Regards,
Felix
>
> /* Patch the pasid field */
> patched_ihre[3] = cpu_to_le32((le32_to_cpu(patched_ihre[3])
More information about the amd-gfx
mailing list