[PATCH 2/2] drm/amdkfd: Query vmid pasid mapping through stored info for non HWS

Kuehling, Felix Felix.Kuehling at amd.com
Thu Sep 26 21:31:39 UTC 2019


On 2019-09-26 5:27 p.m., Zhao, Yong wrote:
> Because we record the mapping under non HWS mode 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 | 4 ++--
>   1 file changed, 2 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..9fff01c0fb9e 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,8 @@ 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];
> +		WARN_ONCE(pasid == 0, "No PASID assigned for VMID %d\n", vmid);

When this happens, you'll now get to WARN_ONCE messages. One here and 
then the one a few lines lower: WARN_ONCE(pasid == 0, "Bug: No PASID in 
KFD interrupt"). My point was, your messages is redundant. The original 
WARN_ONCE already covers both the HWS and non-HWS cases.

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