| From foo@baz Sun Jun 17 12:07:33 CEST 2018 |
| From: Andres Rodriguez <andres.rodriguez@amd.com> |
| Date: Tue, 10 Apr 2018 17:32:33 -0400 |
| Subject: drm/amdkfd: fix clock counter retrieval for node without GPU |
| |
| From: Andres Rodriguez <andres.rodriguez@amd.com> |
| |
| [ Upstream commit 1cf6cc74bbeb85bb87c3ca3f3df97a283c3aa737 ] |
| |
| Currently if a user requests clock counters for a node without a GPU |
| resource we will always return EINVAL. |
| |
| Instead if no GPU resource is attached, fill the gpu_clock_counter |
| argument with zeroes so that we may proceed and return valid CPU |
| counters. |
| |
| Signed-off-by: Andres Rodriguez <andres.rodriguez@amd.com> |
| Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com> |
| Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com> |
| Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 13 +++++++------ |
| 1 file changed, 7 insertions(+), 6 deletions(-) |
| |
| --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c |
| +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c |
| @@ -748,12 +748,13 @@ static int kfd_ioctl_get_clock_counters( |
| struct timespec64 time; |
| |
| dev = kfd_device_by_id(args->gpu_id); |
| - if (dev == NULL) |
| - return -EINVAL; |
| - |
| - /* Reading GPU clock counter from KGD */ |
| - args->gpu_clock_counter = |
| - dev->kfd2kgd->get_gpu_clock_counter(dev->kgd); |
| + if (dev) |
| + /* Reading GPU clock counter from KGD */ |
| + args->gpu_clock_counter = |
| + dev->kfd2kgd->get_gpu_clock_counter(dev->kgd); |
| + else |
| + /* Node without GPU resource */ |
| + args->gpu_clock_counter = 0; |
| |
| /* No access to rdtsc. Using raw monotonic time */ |
| getrawmonotonic64(&time); |