]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
drm/i915/guc: Remove client->submissions
authorDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Wed, 14 Aug 2019 00:21:45 +0000 (17:21 -0700)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 14 Aug 2019 08:04:56 +0000 (09:04 +0100)
The engine->guc_id is GuC FW defined and it is not guaranteed to be
below I915_NUM_ENGINES, so we shouldn't use it with the i915-defined
client->submissions, as we might overflow.
Instead of fixing it, just get rid of client->submissions, because the
information we get from it is not interesting anymore now that we only
have 1 client.

Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20190814002145.29056-1-daniele.ceraolospurio@intel.com
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h
drivers/gpu/drm/i915/i915_debugfs.c

index 54c3ae2c49ffff7fa80753b27d7871bc9e6d315c..f325d3dd564fffab80dd96cfceb29364ae924a67 100644 (file)
@@ -470,8 +470,6 @@ static void guc_add_request(struct intel_guc *guc, struct i915_request *rq)
        guc_wq_item_append(client, engine->guc_id, ctx_desc,
                           ring_tail, rq->fence.seqno);
        guc_ring_doorbell(client);
-
-       client->submissions[engine->guc_id] += 1;
 }
 
 /*
index 963da3029af9934b90f68b5d55a1fd882ab6728f..54d71682835256f3b188f54ade955b746a50cbe4 100644 (file)
@@ -51,8 +51,6 @@ struct intel_guc_client {
 
        /* Protects GuC client's WQ access */
        spinlock_t wq_lock;
-       /* Per-engine counts of GuC submissions */
-       u64 submissions[I915_NUM_ENGINES];
 
        /* For testing purposes, use nop WQ items instead of real ones */
        I915_SELFTEST_DECLARE(bool use_nop_wqi);
index 2c640987c24dfe65bb5f09614daf4789c9d97660..ef4f84e060ee53f7f3326ba8b3ae8357f019c6d7 100644 (file)
@@ -1882,31 +1882,11 @@ static void i915_guc_log_info(struct seq_file *m,
        }
 }
 
-static void i915_guc_client_info(struct seq_file *m,
-                                struct drm_i915_private *dev_priv,
-                                struct intel_guc_client *client)
-{
-       struct intel_engine_cs *engine;
-       u64 tot = 0;
-
-       seq_printf(m, "\tPriority %d, GuC stage index: %u, PD offset 0x%x\n",
-               client->priority, client->stage_id, client->proc_desc_offset);
-       seq_printf(m, "\tDoorbell id %d, offset: 0x%lx\n",
-               client->doorbell_id, client->doorbell_offset);
-
-       for_each_uabi_engine(engine, dev_priv) {
-               u64 submissions = client->submissions[engine->guc_id];
-               tot += submissions;
-               seq_printf(m, "\tSubmissions: %llu %s\n",
-                               submissions, engine->name);
-       }
-       seq_printf(m, "\tTotal: %llu\n", tot);
-}
-
 static int i915_guc_info(struct seq_file *m, void *data)
 {
        struct drm_i915_private *dev_priv = node_to_i915(m->private);
        const struct intel_guc *guc = &dev_priv->gt.uc.guc;
+       struct intel_guc_client *client = guc->execbuf_client;
 
        if (!USES_GUC(dev_priv))
                return -ENODEV;
@@ -1922,9 +1902,13 @@ static int i915_guc_info(struct seq_file *m, void *data)
        seq_printf(m, "\t%*pb\n", GUC_NUM_DOORBELLS, guc->doorbell_bitmap);
        seq_printf(m, "Doorbell next cacheline: 0x%x\n", guc->db_cacheline);
 
-       seq_printf(m, "\nGuC execbuf client @ %p:\n", guc->execbuf_client);
-       i915_guc_client_info(m, dev_priv, guc->execbuf_client);
-
+       seq_printf(m, "\nGuC execbuf client @ %p:\n", client);
+       seq_printf(m, "\tPriority %d, GuC stage index: %u, PD offset 0x%x\n",
+                  client->priority,
+                  client->stage_id,
+                  client->proc_desc_offset);
+       seq_printf(m, "\tDoorbell id %d, offset: 0x%lx\n",
+                  client->doorbell_id, client->doorbell_offset);
        /* Add more as required ... */
 
        return 0;