]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/amdkfd: Queue interrupt work to different CPU
authorPhilip Yang <Philip.Yang@amd.com>
Tue, 26 Nov 2024 16:33:15 +0000 (11:33 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 18 Dec 2024 17:39:07 +0000 (12:39 -0500)
commit34db5a32617d102e8042151bb87590e43c97132e
treec6e752e4208514bb16a697901bf6daf735d56afd
parent1b00143231d3e6f4b76f88f4edd6bb8a1332ef9b
drm/amdkfd: Queue interrupt work to different CPU

For CPX mode, each KFD node has interrupt worker to process ih_fifo to
send events to user space. Currently all interrupt workers of same adev
queue to same CPU, all workers execution are actually serialized and
this cause KFD ih_fifo overflow when CPU usage is high.

Use per-GPU unbounded highpri queue with number of workers equals to
number of partitions, let queue_work select the next CPU round robin
among the local CPUs of same NUMA.

Signed-off-by: Philip Yang <Philip.Yang@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_device.c
drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
drivers/gpu/drm/amd/amdkfd/kfd_priv.h