drm/amdkfd: Use hex print format for pasid
authorYong Zhao <Yong.Zhao@amd.com>
Wed, 25 Sep 2019 21:00:59 +0000 (17:00 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 3 Oct 2019 14:11:03 +0000 (09:11 -0500)
Since KFD pasid starts from 0x8000 (32768 in decimal), it is better
perceived as a hex number. Meanwhile, change the pasid type from
unsigned int to uint16_t to be consistent throughout the code.

Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.c
drivers/gpu/drm/amd/amdkfd/kfd_dbgmgr.c
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
drivers/gpu/drm/amd/amdkfd/kfd_events.c
drivers/gpu/drm/amd/amdkfd/kfd_iommu.c
drivers/gpu/drm/amd/amdkfd/kfd_priv.h
drivers/gpu/drm/amd/amdkfd/kfd_process.c
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c

index d7aca120e5b22f2211b36564e7eb4e4504f52bd9..ad391d064c65011d13282f80301798d5f8712c81 100644 (file)
@@ -282,7 +282,7 @@ static int kfd_ioctl_create_queue(struct file *filep, struct kfd_process *p,
                goto err_bind_process;
        }
 
-       pr_debug("Creating queue for PASID %d on gpu 0x%x\n",
+       pr_debug("Creating queue for PASID 0x%x on gpu 0x%x\n",
                        p->pasid,
                        dev->id);
 
@@ -332,7 +332,7 @@ static int kfd_ioctl_destroy_queue(struct file *filp, struct kfd_process *p,
        int retval;
        struct kfd_ioctl_destroy_queue_args *args = data;
 
-       pr_debug("Destroying queue id %d for pasid %d\n",
+       pr_debug("Destroying queue id %d for pasid 0x%x\n",
                                args->queue_id,
                                p->pasid);
 
@@ -378,7 +378,7 @@ static int kfd_ioctl_update_queue(struct file *filp, struct kfd_process *p,
        properties.queue_percent = args->queue_percentage;
        properties.priority = args->queue_priority;
 
-       pr_debug("Updating queue id %d for pasid %d\n",
+       pr_debug("Updating queue id %d for pasid 0x%x\n",
                        args->queue_id, p->pasid);
 
        mutex_lock(&p->mutex);
@@ -855,7 +855,7 @@ static int kfd_ioctl_get_process_apertures(struct file *filp,
        struct kfd_process_device_apertures *pAperture;
        struct kfd_process_device *pdd;
 
-       dev_dbg(kfd_device, "get apertures for PASID %d", p->pasid);
+       dev_dbg(kfd_device, "get apertures for PASID 0x%x", p->pasid);
 
        args->num_of_nodes = 0;
 
@@ -913,7 +913,7 @@ static int kfd_ioctl_get_process_apertures_new(struct file *filp,
        uint32_t nodes = 0;
        int ret;
 
-       dev_dbg(kfd_device, "get apertures for PASID %d", p->pasid);
+       dev_dbg(kfd_device, "get apertures for PASID 0x%x", p->pasid);
 
        if (args->num_of_nodes == 0) {
                /* Return number of nodes, so that user space can alloacate
@@ -1905,7 +1905,7 @@ static int kfd_mmio_mmap(struct kfd_dev *dev, struct kfd_process *process,
 
        vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
 
-       pr_debug("Process %d mapping mmio page\n"
+       pr_debug("pasid 0x%x mapping mmio page\n"
                 "     target user address == 0x%08llX\n"
                 "     physical address    == 0x%08llX\n"
                 "     vm_flags            == 0x%04lX\n"
index a3441b0e385b7a32edf8a887dbafe2daaed3d109..fedf0709b4aef7495fcc968c4cd0d512d5b91cf2 100644 (file)
@@ -786,7 +786,7 @@ int dbgdev_wave_reset_wavefronts(struct kfd_dev *dev, struct kfd_process *p)
                                (dev->kgd, vmid)) {
                        if (dev->kfd2kgd->get_atc_vmid_pasid_mapping_pasid
                                        (dev->kgd, vmid) == p->pasid) {
-                               pr_debug("Killing wave fronts of vmid %d and pasid %d\n",
+                               pr_debug("Killing wave fronts of vmid %d and pasid 0x%x\n",
                                                vmid, p->pasid);
                                break;
                        }
@@ -794,7 +794,7 @@ int dbgdev_wave_reset_wavefronts(struct kfd_dev *dev, struct kfd_process *p)
        }
 
        if (vmid > last_vmid_to_scan) {
-               pr_err("Didn't find vmid for pasid %d\n", p->pasid);
+               pr_err("Didn't find vmid for pasid 0x%x\n", p->pasid);
                return -EFAULT;
        }
 
index 9d4af961c5d1f2d1b106585332c257e0d79deacf..9bfa50633654a9ebd6638ff4f60a782abf4cfef4 100644 (file)
@@ -96,7 +96,7 @@ bool kfd_dbgmgr_create(struct kfd_dbgmgr **ppmgr, struct kfd_dev *pdev)
 long kfd_dbgmgr_register(struct kfd_dbgmgr *pmgr, struct kfd_process *p)
 {
        if (pmgr->pasid != 0) {
-               pr_debug("H/W debugger is already active using pasid %d\n",
+               pr_debug("H/W debugger is already active using pasid 0x%x\n",
                                pmgr->pasid);
                return -EBUSY;
        }
@@ -117,7 +117,7 @@ long kfd_dbgmgr_unregister(struct kfd_dbgmgr *pmgr, struct kfd_process *p)
 {
        /* Is the requests coming from the already registered process? */
        if (pmgr->pasid != p->pasid) {
-               pr_debug("H/W debugger is not registered by calling pasid %d\n",
+               pr_debug("H/W debugger is not registered by calling pasid 0x%x\n",
                                p->pasid);
                return -EINVAL;
        }
@@ -134,7 +134,7 @@ long kfd_dbgmgr_wave_control(struct kfd_dbgmgr *pmgr,
 {
        /* Is the requests coming from the already registered process? */
        if (pmgr->pasid != wac_info->process->pasid) {
-               pr_debug("H/W debugger support was not registered for requester pasid %d\n",
+               pr_debug("H/W debugger support was not registered for requester pasid 0x%x\n",
                                wac_info->process->pasid);
                return -EINVAL;
        }
@@ -147,7 +147,7 @@ long kfd_dbgmgr_address_watch(struct kfd_dbgmgr *pmgr,
 {
        /* Is the requests coming from the already registered process? */
        if (pmgr->pasid != adw_info->process->pasid) {
-               pr_debug("H/W debugger support was not registered for requester pasid %d\n",
+               pr_debug("H/W debugger support was not registered for requester pasid 0x%x\n",
                                adw_info->process->pasid);
                return -EINVAL;
        }
index 54f0c5cc2f8506960f3cf473595fa2572f1b356b..2ad3b9e786bb7e0e48a33731dfde71b52ca042bf 100644 (file)
@@ -580,7 +580,7 @@ static int evict_process_queues_nocpsch(struct device_queue_manager *dqm,
                goto out;
 
        pdd = qpd_to_pdd(qpd);
-       pr_info_ratelimited("Evicting PASID %u queues\n",
+       pr_info_ratelimited("Evicting PASID 0x%x queues\n",
                            pdd->process->pasid);
 
        /* Mark all queues as evicted. Deactivate all active queues on
@@ -622,7 +622,7 @@ static int evict_process_queues_cpsch(struct device_queue_manager *dqm,
                goto out;
 
        pdd = qpd_to_pdd(qpd);
-       pr_info_ratelimited("Evicting PASID %u queues\n",
+       pr_info_ratelimited("Evicting PASID 0x%x queues\n",
                            pdd->process->pasid);
 
        /* Mark all queues as evicted. Deactivate all active queues on
@@ -668,7 +668,7 @@ static int restore_process_queues_nocpsch(struct device_queue_manager *dqm,
                goto out;
        }
 
-       pr_info_ratelimited("Restoring PASID %u queues\n",
+       pr_info_ratelimited("Restoring PASID 0x%x queues\n",
                            pdd->process->pasid);
 
        /* Update PD Base in QPD */
@@ -740,7 +740,7 @@ static int restore_process_queues_cpsch(struct device_queue_manager *dqm,
                goto out;
        }
 
-       pr_info_ratelimited("Restoring PASID %u queues\n",
+       pr_info_ratelimited("Restoring PASID 0x%x queues\n",
                            pdd->process->pasid);
 
        /* Update PD Base in QPD */
index 2297b6d73ae60c3bddf020fe7a94e9c87595d766..908081c85de1da238c6f0762c9c22817100a0bc1 100644 (file)
@@ -852,8 +852,8 @@ static void lookup_events_by_type_and_signal(struct kfd_process *p,
 
        if (type == KFD_EVENT_TYPE_MEMORY) {
                dev_warn(kfd_device,
-                       "Sending SIGSEGV to HSA Process with PID %d ",
-                               p->lead_thread->pid);
+                       "Sending SIGSEGV to process %d (pasid 0x%x)",
+                               p->lead_thread->pid, p->pasid);
                send_sig(SIGSEGV, p->lead_thread, 0);
        }
 
@@ -861,13 +861,13 @@ static void lookup_events_by_type_and_signal(struct kfd_process *p,
        if (send_signal) {
                if (send_sigterm) {
                        dev_warn(kfd_device,
-                               "Sending SIGTERM to HSA Process with PID %d ",
-                                       p->lead_thread->pid);
+                               "Sending SIGTERM to process %d (pasid 0x%x)",
+                                       p->lead_thread->pid, p->pasid);
                        send_sig(SIGTERM, p->lead_thread, 0);
                } else {
                        dev_err(kfd_device,
-                               "HSA Process (PID %d) got unhandled exception",
-                               p->lead_thread->pid);
+                               "Process %d (pasid 0x%x) got unhandled exception",
+                               p->lead_thread->pid, p->pasid);
                }
        }
 }
index 5f35df23fb18ec365cc079fb9312ea0eb5a0929c..193e2835bd4d26b7709cae4305cd7544c41b2567 100644 (file)
@@ -160,7 +160,7 @@ static void iommu_pasid_shutdown_callback(struct pci_dev *pdev, int pasid)
        if (!p)
                return;
 
-       pr_debug("Unbinding process %d from IOMMU\n", pasid);
+       pr_debug("Unbinding process 0x%x from IOMMU\n", pasid);
 
        mutex_lock(kfd_get_dbgmgr_mutex());
 
@@ -194,7 +194,7 @@ static int iommu_invalid_ppr_cb(struct pci_dev *pdev, int pasid,
        struct kfd_dev *dev;
 
        dev_warn_ratelimited(kfd_device,
-                       "Invalid PPR device %x:%x.%x pasid %d address 0x%lX flags 0x%X",
+                       "Invalid PPR device %x:%x.%x pasid 0x%x address 0x%lX flags 0x%X",
                        PCI_BUS_NUM(pdev->devfn),
                        PCI_SLOT(pdev->devfn),
                        PCI_FUNC(pdev->devfn),
@@ -235,7 +235,7 @@ static int kfd_bind_processes_to_device(struct kfd_dev *kfd)
                err = amd_iommu_bind_pasid(kfd->pdev, p->pasid,
                                p->lead_thread);
                if (err < 0) {
-                       pr_err("Unexpected pasid %d binding failure\n",
+                       pr_err("Unexpected pasid 0x%x binding failure\n",
                                        p->pasid);
                        mutex_unlock(&p->mutex);
                        break;
index 36926aeea84d067602f2ec34b89ce3e63aed0892..c2bab515d8f964102fa911f3cbd1558d8991d943 100644 (file)
@@ -689,7 +689,7 @@ struct kfd_process {
        /* Use for delayed freeing of kfd_process structure */
        struct rcu_head rcu;
 
-       unsigned int pasid;
+       uint16_t pasid;
        unsigned int doorbell_index;
 
        /*
index 48a38847e839ac366a3053373aec2c91d95fbae8..6abfb77ae54073a812752fd9a4031ddaf110950b 100644 (file)
@@ -408,7 +408,7 @@ static void kfd_process_destroy_pdds(struct kfd_process *p)
 
        list_for_each_entry_safe(pdd, temp, &p->per_device_data,
                                 per_device_list) {
-               pr_debug("Releasing pdd (topology id %d) for process (pasid %d)\n",
+               pr_debug("Releasing pdd (topology id %d) for process (pasid 0x%x)\n",
                                pdd->dev->id, p->pasid);
 
                if (pdd->drm_file) {
@@ -1030,7 +1030,7 @@ static void evict_process_worker(struct work_struct *work)
         */
        flush_delayed_work(&p->restore_work);
 
-       pr_debug("Started evicting pasid %d\n", p->pasid);
+       pr_debug("Started evicting pasid 0x%x\n", p->pasid);
        ret = kfd_process_evict_queues(p);
        if (!ret) {
                dma_fence_signal(p->ef);
@@ -1039,9 +1039,9 @@ static void evict_process_worker(struct work_struct *work)
                queue_delayed_work(kfd_restore_wq, &p->restore_work,
                                msecs_to_jiffies(PROCESS_RESTORE_TIME_MS));
 
-               pr_debug("Finished evicting pasid %d\n", p->pasid);
+               pr_debug("Finished evicting pasid 0x%x\n", p->pasid);
        } else
-               pr_err("Failed to evict queues of pasid %d\n", p->pasid);
+               pr_err("Failed to evict queues of pasid 0x%x\n", p->pasid);
 }
 
 static void restore_process_worker(struct work_struct *work)
@@ -1056,7 +1056,7 @@ static void restore_process_worker(struct work_struct *work)
         * lifetime of this thread, kfd_process p will be valid
         */
        p = container_of(dwork, struct kfd_process, restore_work);
-       pr_debug("Started restoring pasid %d\n", p->pasid);
+       pr_debug("Started restoring pasid 0x%x\n", p->pasid);
 
        /* Setting last_restore_timestamp before successful restoration.
         * Otherwise this would have to be set by KGD (restore_process_bos)
@@ -1072,7 +1072,7 @@ static void restore_process_worker(struct work_struct *work)
        ret = amdgpu_amdkfd_gpuvm_restore_process_bos(p->kgd_process_info,
                                                     &p->ef);
        if (ret) {
-               pr_debug("Failed to restore BOs of pasid %d, retry after %d ms\n",
+               pr_debug("Failed to restore BOs of pasid 0x%x, retry after %d ms\n",
                         p->pasid, PROCESS_BACK_OFF_TIME_MS);
                ret = queue_delayed_work(kfd_restore_wq, &p->restore_work,
                                msecs_to_jiffies(PROCESS_BACK_OFF_TIME_MS));
@@ -1082,9 +1082,9 @@ static void restore_process_worker(struct work_struct *work)
 
        ret = kfd_process_restore_queues(p);
        if (!ret)
-               pr_debug("Finished restoring pasid %d\n", p->pasid);
+               pr_debug("Finished restoring pasid 0x%x\n", p->pasid);
        else
-               pr_err("Failed to restore queues of pasid %d\n", p->pasid);
+               pr_err("Failed to restore queues of pasid 0x%x\n", p->pasid);
 }
 
 void kfd_suspend_all_processes(void)
@@ -1098,7 +1098,7 @@ void kfd_suspend_all_processes(void)
                cancel_delayed_work_sync(&p->restore_work);
 
                if (kfd_process_evict_queues(p))
-                       pr_err("Failed to suspend process %d\n", p->pasid);
+                       pr_err("Failed to suspend process 0x%x\n", p->pasid);
                dma_fence_signal(p->ef);
                dma_fence_put(p->ef);
                p->ef = NULL;
@@ -1181,7 +1181,7 @@ int kfd_debugfs_mqds_by_process(struct seq_file *m, void *data)
        int idx = srcu_read_lock(&kfd_processes_srcu);
 
        hash_for_each_rcu(kfd_processes_table, temp, p, kfd_processes) {
-               seq_printf(m, "Process %d PASID %d:\n",
+               seq_printf(m, "Process %d PASID 0x%x:\n",
                           p->lead_thread->tgid, p->pasid);
 
                mutex_lock(&p->mutex);
index 7e6c3ee82f5b233ef3730b78896f10e8c2a92166..2659d226c0565ee8594babd3d7f0fdfbdac4bedb 100644 (file)
@@ -53,7 +53,7 @@ static int find_available_queue_slot(struct process_queue_manager *pqm,
        pr_debug("The new slot id %lu\n", found);
 
        if (found >= KFD_MAX_NUM_OF_QUEUES_PER_PROCESS) {
-               pr_info("Cannot open more queues for process with pasid %d\n",
+               pr_info("Cannot open more queues for process with pasid 0x%x\n",
                                pqm->process->pasid);
                return -ENOMEM;
        }
@@ -298,7 +298,7 @@ int pqm_create_queue(struct process_queue_manager *pqm,
        }
 
        if (retval != 0) {
-               pr_err("Pasid %d DQM create queue %d failed. ret %d\n",
+               pr_err("Pasid 0x%x DQM create queue %d failed. ret %d\n",
                        pqm->process->pasid, type, retval);
                goto err_create_queue;
        }
@@ -377,7 +377,7 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
                dqm = pqn->q->device->dqm;
                retval = dqm->ops.destroy_queue(dqm, &pdd->qpd, pqn->q);
                if (retval) {
-                       pr_err("Pasid %d destroy queue %d failed, ret %d\n",
+                       pr_err("Pasid 0x%x destroy queue %d failed, ret %d\n",
                                pqm->process->pasid,
                                pqn->q->properties.queue_id, retval);
                        if (retval != -ETIME)