From: Dan Carpenter <dan.carpenter@oracle.com>
To: mukul.joshi@amd.com
Cc: amd-gfx@lists.freedesktop.org
Subject: [bug report] drm/amdkfd: Add KFD support for soc21 v3
Date: Mon, 9 May 2022 12:09:22 +0300 [thread overview]
Message-ID: <YnjaQscWYypNadYw@kili> (raw)
Hello Mukul Joshi,
The patch cc009e613de6: "drm/amdkfd: Add KFD support for soc21 v3"
from Apr 26, 2022, leads to the following Smatch static checker
warning:
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager.c:205 add_queue_mes()
warn: unsigned 'queue_input.queue_type' is never less than zero.
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager.c
173 static int add_queue_mes(struct device_queue_manager *dqm, struct queue *q,
174 struct qcm_process_device *qpd)
175 {
176 struct amdgpu_device *adev = (struct amdgpu_device *)dqm->dev->adev;
177 struct kfd_process_device *pdd = qpd_to_pdd(qpd);
178 struct mes_add_queue_input queue_input;
179 int r;
180
181 if (dqm->is_hws_hang)
182 return -EIO;
183
184 memset(&queue_input, 0x0, sizeof(struct mes_add_queue_input));
185 queue_input.process_id = qpd->pqm->process->pasid;
186 queue_input.page_table_base_addr = qpd->page_table_base;
187 queue_input.process_va_start = 0;
188 queue_input.process_va_end = adev->vm_manager.max_pfn - 1;
189 /* MES unit for quantum is 100ns */
190 queue_input.process_quantum = KFD_MES_PROCESS_QUANTUM; /* Equivalent to 10ms. */
191 queue_input.process_context_addr = pdd->proc_ctx_gpu_addr;
192 queue_input.gang_quantum = KFD_MES_GANG_QUANTUM; /* Equivalent to 1ms */
193 queue_input.gang_context_addr = q->gang_ctx_gpu_addr;
194 queue_input.inprocess_gang_priority = q->properties.priority;
195 queue_input.gang_global_priority_level =
196 AMDGPU_MES_PRIORITY_LEVEL_NORMAL;
197 queue_input.doorbell_offset = q->properties.doorbell_off;
198 queue_input.mqd_addr = q->gart_mqd_addr;
199 queue_input.wptr_addr = (uint64_t)q->properties.write_ptr;
200 queue_input.paging = false;
201 queue_input.tba_addr = qpd->tba_addr;
202 queue_input.tma_addr = qpd->tma_addr;
203
204 queue_input.queue_type = convert_to_mes_queue_type(q->properties.type);
--> 205 if (queue_input.queue_type < 0) {
This is a u32 so it can't be negative. Some convert_to_mes_queue_type()
functions return -1 and some return -EINVAL.
206 pr_err("Queue type not supported with MES, queue:%d\n",
207 q->properties.type);
208 return -EINVAL;
209 }
210
211 if (q->gws) {
212 queue_input.gws_base = 0;
213 queue_input.gws_size = qpd->num_gws;
214 }
215
216 amdgpu_mes_lock(&adev->mes);
217 r = adev->mes.funcs->add_hw_queue(&adev->mes, &queue_input);
218 amdgpu_mes_unlock(&adev->mes);
219 if (r) {
220 pr_err("failed to add hardware queue to MES, doorbell=0x%x\n",
221 q->properties.doorbell_off);
222 pr_err("MES might be in unrecoverable state, issue a GPU reset\n");
223 kfd_hws_hang(dqm);
224 }
regards,
dan carpenter
reply other threads:[~2022-05-09 9:09 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=YnjaQscWYypNadYw@kili \
--to=dan.carpenter@oracle.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=mukul.joshi@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.