drm/i915/guc: Remove client->submissions
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
This commit is contained in:
parent
be6133b891
commit
0b08ae0301
|
@ -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,
|
guc_wq_item_append(client, engine->guc_id, ctx_desc,
|
||||||
ring_tail, rq->fence.seqno);
|
ring_tail, rq->fence.seqno);
|
||||||
guc_ring_doorbell(client);
|
guc_ring_doorbell(client);
|
||||||
|
|
||||||
client->submissions[engine->guc_id] += 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -51,8 +51,6 @@ struct intel_guc_client {
|
||||||
|
|
||||||
/* Protects GuC client's WQ access */
|
/* Protects GuC client's WQ access */
|
||||||
spinlock_t wq_lock;
|
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 */
|
/* For testing purposes, use nop WQ items instead of real ones */
|
||||||
I915_SELFTEST_DECLARE(bool use_nop_wqi);
|
I915_SELFTEST_DECLARE(bool use_nop_wqi);
|
||||||
|
|
|
@ -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)
|
static int i915_guc_info(struct seq_file *m, void *data)
|
||||||
{
|
{
|
||||||
struct drm_i915_private *dev_priv = node_to_i915(m->private);
|
struct drm_i915_private *dev_priv = node_to_i915(m->private);
|
||||||
const struct intel_guc *guc = &dev_priv->gt.uc.guc;
|
const struct intel_guc *guc = &dev_priv->gt.uc.guc;
|
||||||
|
struct intel_guc_client *client = guc->execbuf_client;
|
||||||
|
|
||||||
if (!USES_GUC(dev_priv))
|
if (!USES_GUC(dev_priv))
|
||||||
return -ENODEV;
|
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, "\t%*pb\n", GUC_NUM_DOORBELLS, guc->doorbell_bitmap);
|
||||||
seq_printf(m, "Doorbell next cacheline: 0x%x\n", guc->db_cacheline);
|
seq_printf(m, "Doorbell next cacheline: 0x%x\n", guc->db_cacheline);
|
||||||
|
|
||||||
seq_printf(m, "\nGuC execbuf client @ %p:\n", guc->execbuf_client);
|
seq_printf(m, "\nGuC execbuf client @ %p:\n", client);
|
||||||
i915_guc_client_info(m, dev_priv, guc->execbuf_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 ... */
|
/* Add more as required ... */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue