task_info
void amdgpu_vm_put_task_info(struct amdgpu_task_info *task_info)
if (task_info)
kref_put(&task_info->refcount, amdgpu_vm_destroy_task_info);
ti = vm->task_info;
kref_get(&vm->task_info->refcount);
vm->task_info = kzalloc_obj(struct amdgpu_task_info);
if (!vm->task_info)
kref_init(&vm->task_info->refcount);
if (!vm->task_info)
if (vm->task_info->task.pid == current->pid)
vm->task_info->task.pid = current->pid;
get_task_comm(vm->task_info->task.comm, current);
vm->task_info->tgid = current->tgid;
get_task_comm(vm->task_info->process_name, current->group_leader);
struct amdgpu_task_info *ti = vm->task_info;
amdgpu_vm_put_task_info(vm->task_info);
struct amdgpu_task_info *task_info)
task_info->process_name, task_info->tgid,
task_info->task.comm, task_info->task.pid);
struct amdgpu_task_info *task_info;
void amdgpu_vm_put_task_info(struct amdgpu_task_info *task_info);
struct amdgpu_task_info *task_info);
vm->task_info ? vm->task_info->tgid : 0,
struct amdgpu_task_info *task_info;
task_info = amdgpu_vm_get_task_info_pasid(adev, entry->pasid);
if (task_info) {
amdgpu_vm_print_task_info(adev, task_info);
amdgpu_vm_put_task_info(task_info);
struct amdgpu_task_info *task_info;
task_info = amdgpu_vm_get_task_info_pasid(adev, entry->pasid);
if (task_info) {
amdgpu_vm_print_task_info(adev, task_info);
amdgpu_vm_put_task_info(task_info);
struct amdgpu_task_info *task_info;
task_info = amdgpu_vm_get_task_info_pasid(adev, entry->pasid);
if (task_info) {
amdgpu_vm_print_task_info(adev, task_info);
amdgpu_vm_put_task_info(task_info);
struct amdgpu_task_info *task_info;
task_info = amdgpu_vm_get_task_info_pasid(adev, entry->pasid);
if (task_info) {
amdgpu_vm_print_task_info(adev, task_info);
amdgpu_vm_put_task_info(task_info);
struct amdgpu_task_info *task_info;
task_info = amdgpu_vm_get_task_info_pasid(adev, entry->pasid);
if (task_info) {
amdgpu_vm_print_task_info(adev, task_info);
amdgpu_vm_put_task_info(task_info);
struct amdgpu_task_info *task_info;
task_info = amdgpu_vm_get_task_info_pasid(adev, entry->pasid);
if (task_info) {
amdgpu_vm_print_task_info(adev, task_info);
amdgpu_vm_put_task_info(task_info);
struct amdgpu_task_info *task_info;
task_info = amdgpu_vm_get_task_info_pasid(adev, entry->pasid);
if (task_info) {
task_info->process_name, task_info->tgid,
task_info->task.comm, task_info->task.pid);
amdgpu_vm_put_task_info(task_info);
struct amdgpu_task_info *task_info;
task_info = amdgpu_vm_get_task_info_pasid(adev, entry->pasid);
if (task_info) {
task_info->process_name, task_info->tgid,
task_info->task.comm, task_info->task.pid);
amdgpu_vm_put_task_info(task_info);
struct amdgpu_task_info *task_info;
task_info = amdgpu_vm_get_task_info_pasid(dev->adev, pasid);
if (task_info) {
if (task_info->task.pid)
task_info->task.pid, task_info->task.comm));
amdgpu_vm_put_task_info(task_info);
struct amdgpu_task_info *task_info;
task_info = amdgpu_vm_get_task_info_vm(avm);
if (task_info) {
KFD_EVENT_FMT_PROCESS(task_info->task.pid,
task_info->task.comm));
amdgpu_vm_put_task_info(task_info);
group->task_info.pid, group->task_info.comm);
group->task_info.pid, group->task_info.comm);
group->task_info.pid, group->task_info.comm);
group->task_info.pid, group->task_info.comm, job->done_fence->seqno);
group->task_info.pid = task->pid;
get_task_comm(group->task_info.comm, task);
} task_info;
strscpy(dump->task_info, "(task stack) start, end, size",
sizeof(dump->task_info));
char task_info[32];
static struct task_info tasks[MAX_TASKS];
static void set_mem_delay_total(struct task_info *t)
static void set_mem_count(struct task_info *t)
offsetof(struct task_info, name##_delay_total), \
offsetof(struct task_info, name##_count), \
const struct task_info *t1 = (const struct task_info *)a;
const struct task_info *t2 = (const struct task_info *)b;
qsort(tasks, task_count, sizeof(struct task_info), compare_tasks);