Skip to content

Commit d92f4c7

Browse files
qctecmdrGerrit - the friendly Code Review server
qctecmdr
authored and
Gerrit - the friendly Code Review server
committed
Merge "msm: kgsl: Add missing syncpoint_fence/expire trace"
2 parents a09e837 + 84835ce commit d92f4c7

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

drivers/gpu/msm/kgsl_drawobj.c

+31-1
Original file line numberDiff line numberDiff line change
@@ -262,12 +262,40 @@ static void drawobj_sync_timeline_fence_work(struct irq_work *work)
262262
kgsl_drawobj_put(&event->syncobj->base);
263263
}
264264

265+
static void trace_syncpoint_timeline_fence(struct kgsl_drawobj_sync *syncobj,
266+
struct dma_fence *f, bool expire)
267+
{
268+
struct dma_fence_array *array = to_dma_fence_array(f);
269+
struct dma_fence **fences = &f;
270+
u32 num_fences = 1;
271+
int i;
272+
273+
if (array) {
274+
num_fences = array->num_fences;
275+
fences = array->fences;
276+
}
277+
278+
for (i = 0; i < num_fences; i++) {
279+
char fence_name[KGSL_FENCE_NAME_LEN];
280+
281+
snprintf(fence_name, sizeof(fence_name), "%s:%llu",
282+
fences[i]->ops->get_timeline_name(fences[i]),
283+
fences[i]->seqno);
284+
if (expire)
285+
trace_syncpoint_fence_expire(syncobj, fence_name);
286+
else
287+
trace_syncpoint_fence(syncobj, fence_name);
288+
}
289+
}
290+
265291
static void drawobj_sync_timeline_fence_callback(struct dma_fence *f,
266292
struct dma_fence_cb *cb)
267293
{
268294
struct kgsl_drawobj_sync_event *event = container_of(cb,
269295
struct kgsl_drawobj_sync_event, cb);
270296

297+
trace_syncpoint_timeline_fence(event->syncobj, f, true);
298+
271299
/*
272300
* Mark the event as synced and then fire off a worker to handle
273301
* removing the fence
@@ -494,9 +522,11 @@ static int drawobj_add_sync_timeline(struct kgsl_device *device,
494522
}
495523

496524
kgsl_drawobj_put(drawobj);
525+
return ret;
497526
}
498527

499-
return ret;
528+
trace_syncpoint_timeline_fence(event->syncobj, event->fence, false);
529+
return 0;
500530
}
501531

502532
static int drawobj_add_sync_fence(struct kgsl_device *device,

0 commit comments

Comments
 (0)