Loading drivers/gpu/msm/adreno_dispatch.c +11 −11 Original line number Diff line number Diff line Loading @@ -640,6 +640,17 @@ static int sendcmd(struct adreno_device *adreno_dev, secs = time.ktime; nsecs = do_div(secs, 1000000000); /* * For the first submission in any given command queue update the * expected expire time - this won't actually be used / updated until * the command queue in question goes current, but universally setting * it here avoids the possibilty of some race conditions with preempt */ if (dispatch_q->inflight == 1) dispatch_q->expires = jiffies + msecs_to_jiffies(adreno_drawobj_timeout); trace_adreno_cmdbatch_submitted(drawobj, (int) dispatcher->inflight, time.ticks, (unsigned long) secs, nsecs / 1000, drawctxt->rb, adreno_get_rptr(drawctxt->rb)); Loading @@ -652,17 +663,6 @@ static int sendcmd(struct adreno_device *adreno_dev, dispatch_q->tail = (dispatch_q->tail + 1) % ADRENO_DISPATCH_DRAWQUEUE_SIZE; /* * For the first submission in any given command queue update the * expected expire time - this won't actually be used / updated until * the command queue in question goes current, but universally setting * it here avoids the possibilty of some race conditions with preempt */ if (dispatch_q->inflight == 1) dispatch_q->expires = jiffies + msecs_to_jiffies(adreno_drawobj_timeout); /* * If we believe ourselves to be current and preemption isn't a thing, * then set up the timer. If this misses, then preemption is indeed a Loading drivers/gpu/msm/adreno_trace.h +11 −11 Original line number Diff line number Diff line /* Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -577,17 +577,17 @@ TRACE_EVENT(adreno_preempt_trigger, unsigned int cntl), TP_ARGS(cur, next, cntl), TP_STRUCT__entry( __field(struct adreno_ringbuffer *, cur) __field(struct adreno_ringbuffer *, next) __field(unsigned int, cur) __field(unsigned int, next) __field(unsigned int, cntl) ), TP_fast_assign( __entry->cur = cur; __entry->next = next; __entry->cur = cur->id; __entry->next = next->id; __entry->cntl = cntl; ), TP_printk("trigger from id=%d to id=%d cntl=%x", __entry->cur->id, __entry->next->id, __entry->cntl __entry->cur, __entry->next, __entry->cntl ) ); Loading @@ -596,17 +596,17 @@ TRACE_EVENT(adreno_preempt_done, unsigned int level), TP_ARGS(cur, next, level), TP_STRUCT__entry( __field(struct adreno_ringbuffer *, cur) __field(struct adreno_ringbuffer *, next) __field(unsigned int, cur) __field(unsigned int, next) __field(unsigned int, level) ), TP_fast_assign( __entry->cur = cur; __entry->next = next; __entry->cur = cur->id; __entry->next = next->id; __entry->level = level; ), TP_printk("done switch to id=%d from id=%d level=%x", __entry->next->id, __entry->cur->id, __entry->level __entry->next, __entry->cur, __entry->level ) ); Loading Loading
drivers/gpu/msm/adreno_dispatch.c +11 −11 Original line number Diff line number Diff line Loading @@ -640,6 +640,17 @@ static int sendcmd(struct adreno_device *adreno_dev, secs = time.ktime; nsecs = do_div(secs, 1000000000); /* * For the first submission in any given command queue update the * expected expire time - this won't actually be used / updated until * the command queue in question goes current, but universally setting * it here avoids the possibilty of some race conditions with preempt */ if (dispatch_q->inflight == 1) dispatch_q->expires = jiffies + msecs_to_jiffies(adreno_drawobj_timeout); trace_adreno_cmdbatch_submitted(drawobj, (int) dispatcher->inflight, time.ticks, (unsigned long) secs, nsecs / 1000, drawctxt->rb, adreno_get_rptr(drawctxt->rb)); Loading @@ -652,17 +663,6 @@ static int sendcmd(struct adreno_device *adreno_dev, dispatch_q->tail = (dispatch_q->tail + 1) % ADRENO_DISPATCH_DRAWQUEUE_SIZE; /* * For the first submission in any given command queue update the * expected expire time - this won't actually be used / updated until * the command queue in question goes current, but universally setting * it here avoids the possibilty of some race conditions with preempt */ if (dispatch_q->inflight == 1) dispatch_q->expires = jiffies + msecs_to_jiffies(adreno_drawobj_timeout); /* * If we believe ourselves to be current and preemption isn't a thing, * then set up the timer. If this misses, then preemption is indeed a Loading
drivers/gpu/msm/adreno_trace.h +11 −11 Original line number Diff line number Diff line /* Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -577,17 +577,17 @@ TRACE_EVENT(adreno_preempt_trigger, unsigned int cntl), TP_ARGS(cur, next, cntl), TP_STRUCT__entry( __field(struct adreno_ringbuffer *, cur) __field(struct adreno_ringbuffer *, next) __field(unsigned int, cur) __field(unsigned int, next) __field(unsigned int, cntl) ), TP_fast_assign( __entry->cur = cur; __entry->next = next; __entry->cur = cur->id; __entry->next = next->id; __entry->cntl = cntl; ), TP_printk("trigger from id=%d to id=%d cntl=%x", __entry->cur->id, __entry->next->id, __entry->cntl __entry->cur, __entry->next, __entry->cntl ) ); Loading @@ -596,17 +596,17 @@ TRACE_EVENT(adreno_preempt_done, unsigned int level), TP_ARGS(cur, next, level), TP_STRUCT__entry( __field(struct adreno_ringbuffer *, cur) __field(struct adreno_ringbuffer *, next) __field(unsigned int, cur) __field(unsigned int, next) __field(unsigned int, level) ), TP_fast_assign( __entry->cur = cur; __entry->next = next; __entry->cur = cur->id; __entry->next = next->id; __entry->level = level; ), TP_printk("done switch to id=%d from id=%d level=%x", __entry->next->id, __entry->cur->id, __entry->level __entry->next, __entry->cur, __entry->level ) ); Loading