]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
drm/i915/guc: Name the default GuC scheduling policy
authorOscar Mateo <oscar.mateo@intel.com>
Tue, 12 Sep 2017 21:36:35 +0000 (14:36 -0700)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 13 Sep 2017 09:34:50 +0000 (10:34 +0100)
The default values for the default scheduling policy come from the
GuC firmware itself. Transform the magic numbers into defines.

Suggested-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1505252197-27696-1-git-send-email-oscar.mateo@intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_guc_submission.c
drivers/gpu/drm/i915/intel_guc_fwif.h

index 48a1e9349a2ce24efc76da76e2fc09abe5906c5c..0f1536edc1eaac9b651a94a061515b3c0e1a7502 100644 (file)
@@ -996,22 +996,27 @@ static void guc_client_free(struct i915_guc_client *client)
        kfree(client);
 }
 
+static void guc_policy_init(struct guc_policy *policy)
+{
+       policy->execution_quantum = POLICY_DEFAULT_EXECUTION_QUANTUM_US;
+       policy->preemption_time = POLICY_DEFAULT_PREEMPTION_TIME_US;
+       policy->fault_time = POLICY_DEFAULT_FAULT_TIME_US;
+       policy->policy_flags = 0;
+}
+
 static void guc_policies_init(struct guc_policies *policies)
 {
        struct guc_policy *policy;
        u32 p, i;
 
-       policies->dpc_promote_time = 500000;
+       policies->dpc_promote_time = POLICY_DEFAULT_DPC_PROMOTE_TIME_US;
        policies->max_num_work_items = POLICY_MAX_NUM_WI;
 
        for (p = 0; p < GUC_CLIENT_PRIORITY_NUM; p++) {
                for (i = GUC_RENDER_ENGINE; i < GUC_MAX_ENGINES_NUM; i++) {
                        policy = &policies->policy[p][i];
 
-                       policy->execution_quantum = 1000000;
-                       policy->preemption_time = 500000;
-                       policy->fault_time = 250000;
-                       policy->policy_flags = 0;
+                       guc_policy_init(policy);
                }
        }
 
index 5fa28607481179fd914e2e6a3900a4d43d45ff21..83bd401196eb68f582a83a4466ee859ea7d47b56 100644 (file)
@@ -388,7 +388,11 @@ struct guc_ct_buffer_desc {
 /* Preempt to idle on quantum expiry */
 #define POLICY_PREEMPT_TO_IDLE         (1<<1)
 
-#define POLICY_MAX_NUM_WI              15
+#define POLICY_MAX_NUM_WI 15
+#define POLICY_DEFAULT_DPC_PROMOTE_TIME_US 500000
+#define POLICY_DEFAULT_EXECUTION_QUANTUM_US 1000000
+#define POLICY_DEFAULT_PREEMPTION_TIME_US 500000
+#define POLICY_DEFAULT_FAULT_TIME_US 250000
 
 struct guc_policy {
        /* Time for one workload to execute. (in micro seconds) */