amdgpu: add an environment variable that overrides the context priority
authorMarek Olšák <marek.olsak@amd.com>
Thu, 13 Apr 2023 15:01:51 +0000 (11:01 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 11 May 2023 16:53:29 +0000 (12:53 -0400)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
amdgpu/amdgpu_cs.c

index 638fd7d..0eceb38 100644 (file)
@@ -56,10 +56,22 @@ drm_public int amdgpu_cs_ctx_create2(amdgpu_device_handle dev,
        union drm_amdgpu_ctx args;
        int i, j, k;
        int r;
+       char *override_priority;
 
        if (!dev || !context)
                return -EINVAL;
 
+       override_priority = getenv("AMD_PRIORITY");
+       if (override_priority) {
+               /* The priority is a signed integer. The variable type is
+                * wrong. If parsing fails, priority is unchanged.
+                */
+               if (sscanf(override_priority, "%i", &priority) == 1) {
+                       printf("amdgpu: context priority changed to %i\n",
+                              priority);
+               }
+       }
+
        gpu_context = calloc(1, sizeof(struct amdgpu_context));
        if (!gpu_context)
                return -ENOMEM;