mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-25 00:52:45 -04:00
drm/amdkfd: Update SMI events for GFX9.4.3
On GFX 9.4.3, there can be multiple KFD nodes. As a result, SMI events for SVM, queue evict/restore should be raised for each node independently. Signed-off-by: Mukul Joshi <mukul.joshi@amd.com> Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
cd321e6fd6
commit
d6e924ad85
@@ -250,58 +250,58 @@ void kfd_smi_event_update_vmfault(struct kfd_node *dev, uint16_t pasid)
|
||||
task_info.pid, task_info.task_name);
|
||||
}
|
||||
|
||||
void kfd_smi_event_page_fault_start(struct kfd_dev *dev, pid_t pid,
|
||||
void kfd_smi_event_page_fault_start(struct kfd_node *node, pid_t pid,
|
||||
unsigned long address, bool write_fault,
|
||||
ktime_t ts)
|
||||
{
|
||||
kfd_smi_event_add(pid, dev->nodes[0], KFD_SMI_EVENT_PAGE_FAULT_START,
|
||||
kfd_smi_event_add(pid, node, KFD_SMI_EVENT_PAGE_FAULT_START,
|
||||
"%lld -%d @%lx(%x) %c\n", ktime_to_ns(ts), pid,
|
||||
address, dev->nodes[0]->id, write_fault ? 'W' : 'R');
|
||||
address, node->id, write_fault ? 'W' : 'R');
|
||||
}
|
||||
|
||||
void kfd_smi_event_page_fault_end(struct kfd_dev *dev, pid_t pid,
|
||||
void kfd_smi_event_page_fault_end(struct kfd_node *node, pid_t pid,
|
||||
unsigned long address, bool migration)
|
||||
{
|
||||
kfd_smi_event_add(pid, dev->nodes[0], KFD_SMI_EVENT_PAGE_FAULT_END,
|
||||
kfd_smi_event_add(pid, node, KFD_SMI_EVENT_PAGE_FAULT_END,
|
||||
"%lld -%d @%lx(%x) %c\n", ktime_get_boottime_ns(),
|
||||
pid, address, dev->nodes[0]->id, migration ? 'M' : 'U');
|
||||
pid, address, node->id, migration ? 'M' : 'U');
|
||||
}
|
||||
|
||||
void kfd_smi_event_migration_start(struct kfd_dev *dev, pid_t pid,
|
||||
void kfd_smi_event_migration_start(struct kfd_node *node, pid_t pid,
|
||||
unsigned long start, unsigned long end,
|
||||
uint32_t from, uint32_t to,
|
||||
uint32_t prefetch_loc, uint32_t preferred_loc,
|
||||
uint32_t trigger)
|
||||
{
|
||||
kfd_smi_event_add(pid, dev->nodes[0], KFD_SMI_EVENT_MIGRATE_START,
|
||||
kfd_smi_event_add(pid, node, KFD_SMI_EVENT_MIGRATE_START,
|
||||
"%lld -%d @%lx(%lx) %x->%x %x:%x %d\n",
|
||||
ktime_get_boottime_ns(), pid, start, end - start,
|
||||
from, to, prefetch_loc, preferred_loc, trigger);
|
||||
}
|
||||
|
||||
void kfd_smi_event_migration_end(struct kfd_dev *dev, pid_t pid,
|
||||
void kfd_smi_event_migration_end(struct kfd_node *node, pid_t pid,
|
||||
unsigned long start, unsigned long end,
|
||||
uint32_t from, uint32_t to, uint32_t trigger)
|
||||
{
|
||||
kfd_smi_event_add(pid, dev->nodes[0], KFD_SMI_EVENT_MIGRATE_END,
|
||||
kfd_smi_event_add(pid, node, KFD_SMI_EVENT_MIGRATE_END,
|
||||
"%lld -%d @%lx(%lx) %x->%x %d\n",
|
||||
ktime_get_boottime_ns(), pid, start, end - start,
|
||||
from, to, trigger);
|
||||
}
|
||||
|
||||
void kfd_smi_event_queue_eviction(struct kfd_dev *dev, pid_t pid,
|
||||
void kfd_smi_event_queue_eviction(struct kfd_node *node, pid_t pid,
|
||||
uint32_t trigger)
|
||||
{
|
||||
kfd_smi_event_add(pid, dev->nodes[0], KFD_SMI_EVENT_QUEUE_EVICTION,
|
||||
kfd_smi_event_add(pid, node, KFD_SMI_EVENT_QUEUE_EVICTION,
|
||||
"%lld -%d %x %d\n", ktime_get_boottime_ns(), pid,
|
||||
dev->nodes[0]->id, trigger);
|
||||
node->id, trigger);
|
||||
}
|
||||
|
||||
void kfd_smi_event_queue_restore(struct kfd_dev *dev, pid_t pid)
|
||||
void kfd_smi_event_queue_restore(struct kfd_node *node, pid_t pid)
|
||||
{
|
||||
kfd_smi_event_add(pid, dev->nodes[0], KFD_SMI_EVENT_QUEUE_RESTORE,
|
||||
kfd_smi_event_add(pid, node, KFD_SMI_EVENT_QUEUE_RESTORE,
|
||||
"%lld -%d %x\n", ktime_get_boottime_ns(), pid,
|
||||
dev->nodes[0]->id);
|
||||
node->id);
|
||||
}
|
||||
|
||||
void kfd_smi_event_queue_restore_rescheduled(struct mm_struct *mm)
|
||||
@@ -324,13 +324,13 @@ void kfd_smi_event_queue_restore_rescheduled(struct mm_struct *mm)
|
||||
kfd_unref_process(p);
|
||||
}
|
||||
|
||||
void kfd_smi_event_unmap_from_gpu(struct kfd_dev *dev, pid_t pid,
|
||||
void kfd_smi_event_unmap_from_gpu(struct kfd_node *node, pid_t pid,
|
||||
unsigned long address, unsigned long last,
|
||||
uint32_t trigger)
|
||||
{
|
||||
kfd_smi_event_add(pid, dev->nodes[0], KFD_SMI_EVENT_UNMAP_FROM_GPU,
|
||||
kfd_smi_event_add(pid, node, KFD_SMI_EVENT_UNMAP_FROM_GPU,
|
||||
"%lld -%d @%lx(%lx) %x %d\n", ktime_get_boottime_ns(),
|
||||
pid, address, last - address + 1, dev->nodes[0]->id, trigger);
|
||||
pid, address, last - address + 1, node->id, trigger);
|
||||
}
|
||||
|
||||
int kfd_smi_event_open(struct kfd_node *dev, uint32_t *fd)
|
||||
|
||||
Reference in New Issue
Block a user