Skip to content

Commit 9286a19

Browse files
mbrost05mlankhorst
authored andcommitted
drm/xe: Drop GuC submit_wq pool
Now that drm sched uses a single lockdep map for all submit_wq, drop the GuC submit_wq pool hack. Signed-off-by: Matthew Brost <[email protected]> Reviewed-by: Nirmoy Das <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] Signed-off-by: Maarten Lankhorst <[email protected]> Acked-by: Thomas Hellström <[email protected]>
1 parent 34f50cc commit 9286a19

File tree

2 files changed

+1
-66
lines changed

2 files changed

+1
-66
lines changed

drivers/gpu/drm/xe/xe_guc_submit.c

Lines changed: 1 addition & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -224,64 +224,11 @@ static bool exec_queue_killed_or_banned_or_wedged(struct xe_exec_queue *q)
224224
EXEC_QUEUE_STATE_BANNED));
225225
}
226226

227-
#ifdef CONFIG_PROVE_LOCKING
228-
static int alloc_submit_wq(struct xe_guc *guc)
229-
{
230-
int i;
231-
232-
for (i = 0; i < NUM_SUBMIT_WQ; ++i) {
233-
guc->submission_state.submit_wq_pool[i] =
234-
alloc_ordered_workqueue("submit_wq", 0);
235-
if (!guc->submission_state.submit_wq_pool[i])
236-
goto err_free;
237-
}
238-
239-
return 0;
240-
241-
err_free:
242-
while (i)
243-
destroy_workqueue(guc->submission_state.submit_wq_pool[--i]);
244-
245-
return -ENOMEM;
246-
}
247-
248-
static void free_submit_wq(struct xe_guc *guc)
249-
{
250-
int i;
251-
252-
for (i = 0; i < NUM_SUBMIT_WQ; ++i)
253-
destroy_workqueue(guc->submission_state.submit_wq_pool[i]);
254-
}
255-
256-
static struct workqueue_struct *get_submit_wq(struct xe_guc *guc)
257-
{
258-
int idx = guc->submission_state.submit_wq_idx++ % NUM_SUBMIT_WQ;
259-
260-
return guc->submission_state.submit_wq_pool[idx];
261-
}
262-
#else
263-
static int alloc_submit_wq(struct xe_guc *guc)
264-
{
265-
return 0;
266-
}
267-
268-
static void free_submit_wq(struct xe_guc *guc)
269-
{
270-
271-
}
272-
273-
static struct workqueue_struct *get_submit_wq(struct xe_guc *guc)
274-
{
275-
return NULL;
276-
}
277-
#endif
278-
279227
static void guc_submit_fini(struct drm_device *drm, void *arg)
280228
{
281229
struct xe_guc *guc = arg;
282230

283231
xa_destroy(&guc->submission_state.exec_queue_lookup);
284-
free_submit_wq(guc);
285232
}
286233

287234
static void guc_submit_wedged_fini(void *arg)
@@ -337,10 +284,6 @@ int xe_guc_submit_init(struct xe_guc *guc, unsigned int num_ids)
337284
if (err)
338285
return err;
339286

340-
err = alloc_submit_wq(guc);
341-
if (err)
342-
return err;
343-
344287
gt->exec_queue_ops = &guc_exec_queue_ops;
345288

346289
xa_init(&guc->submission_state.exec_queue_lookup);
@@ -1452,8 +1395,7 @@ static int guc_exec_queue_init(struct xe_exec_queue *q)
14521395
timeout = (q->vm && xe_vm_in_lr_mode(q->vm)) ? MAX_SCHEDULE_TIMEOUT :
14531396
msecs_to_jiffies(q->sched_props.job_timeout_ms);
14541397
err = xe_sched_init(&ge->sched, &drm_sched_ops, &xe_sched_ops,
1455-
get_submit_wq(guc),
1456-
q->lrc[0]->ring.size / MAX_JOB_SIZE_BYTES, 64,
1398+
NULL, q->lrc[0]->ring.size / MAX_JOB_SIZE_BYTES, 64,
14571399
timeout, guc_to_gt(guc)->ordered_wq, NULL,
14581400
q->name, gt_to_xe(q->gt)->drm.dev);
14591401
if (err)

drivers/gpu/drm/xe/xe_guc_types.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,6 @@ struct xe_guc {
7272
atomic_t stopped;
7373
/** @submission_state.lock: protects submission state */
7474
struct mutex lock;
75-
#ifdef CONFIG_PROVE_LOCKING
76-
#define NUM_SUBMIT_WQ 256
77-
/** @submission_state.submit_wq_pool: submission ordered workqueues pool */
78-
struct workqueue_struct *submit_wq_pool[NUM_SUBMIT_WQ];
79-
/** @submission_state.submit_wq_idx: submission ordered workqueue index */
80-
int submit_wq_idx;
81-
#endif
8275
/** @submission_state.enabled: submission is enabled */
8376
bool enabled;
8477
} submission_state;

0 commit comments

Comments
 (0)