summaryrefslogtreecommitdiff
path: root/drivers/gpu/arm/midgard/mali_kbase_tlstream.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/arm/midgard/mali_kbase_tlstream.c')
-rw-r--r--drivers/gpu/arm/midgard/mali_kbase_tlstream.c330
1 files changed, 67 insertions, 263 deletions
diff --git a/drivers/gpu/arm/midgard/mali_kbase_tlstream.c b/drivers/gpu/arm/midgard/mali_kbase_tlstream.c
index ad88b7b69018..0994ddd7c95f 100644
--- a/drivers/gpu/arm/midgard/mali_kbase_tlstream.c
+++ b/drivers/gpu/arm/midgard/mali_kbase_tlstream.c
@@ -1,6 +1,6 @@
/*
*
- * (C) COPYRIGHT 2015-2016 ARM Limited. All rights reserved.
+ * (C) COPYRIGHT 2015 ARM Limited. All rights reserved.
*
* This program is free software and is provided to you under the terms of the
* GNU General Public License version 2 as published by the Free Software
@@ -41,6 +41,9 @@
/* The number of nanoseconds in a second. */
#define NSECS_IN_SEC 1000000000ull /* ns */
+/* The number of nanoseconds to wait before autoflushing the stream. */
+#define AUTOFLUSH_TIMEOUT (2ull * NSECS_IN_SEC) /* ns */
+
/* The period of autoflush checker execution in milliseconds. */
#define AUTOFLUSH_INTERVAL 1000 /* ms */
@@ -139,8 +142,6 @@ enum tl_msg_id_obj {
KBASE_TL_RET_ATOM_AS,
KBASE_TL_NRET_ATOM_AS,
KBASE_TL_DEP_ATOM_ATOM,
- KBASE_TL_NDEP_ATOM_ATOM,
- KBASE_TL_RDEP_ATOM_ATOM,
KBASE_TL_ATTRIB_ATOM_CONFIG,
KBASE_TL_ATTRIB_AS_CONFIG,
@@ -151,9 +152,7 @@ enum tl_msg_id_obj {
/* Message ids of trace events that are recorded in the auxiliary stream. */
enum tl_msg_id_aux {
KBASE_AUX_PM_STATE,
- KBASE_AUX_ISSUE_JOB_SOFTSTOP,
KBASE_AUX_JOB_SOFTSTOP,
- KBASE_AUX_JOB_SOFTSTOP_EX,
KBASE_AUX_PAGEFAULT,
KBASE_AUX_PAGESALLOC
};
@@ -167,7 +166,7 @@ enum tl_msg_id_aux {
* @wbi: write buffer index
* @rbi: read buffer index
* @numbered: if non-zero stream's packets are sequentially numbered
- * @autoflush_counter: counter tracking stream's autoflush state
+ * @last_write_time: timestamp indicating last write
*
* This structure holds information needed to construct proper packets in the
* timeline stream. Each message in sequence must bear timestamp that is greater
@@ -178,11 +177,6 @@ enum tl_msg_id_aux {
* Each packet in timeline body stream has sequence number embedded (this value
* must increment monotonically and is used by packets receiver to discover
* buffer overflows.
- * Autoflush counter is set to negative number when there is no data pending
- * for flush and it is set to zero on every update of the buffer. Autoflush
- * timer will increment the counter by one on every expiry. In case there will
- * be no activity on the buffer during two consecutive timer expiries, stream
- * buffer will be flushed.
*/
struct tl_stream {
spinlock_t lock;
@@ -196,7 +190,7 @@ struct tl_stream {
atomic_t rbi;
int numbered;
- atomic_t autoflush_counter;
+ u64 last_write_time;
};
/**
@@ -247,6 +241,9 @@ static atomic_t autoflush_timer_active;
* streams at any given time. */
static DEFINE_MUTEX(tl_reader_lock);
+/* Indicator of whether the timeline stream file descriptor is already used. */
+static atomic_t tlstream_busy = {0};
+
/* Timeline stream event queue. */
static DECLARE_WAIT_QUEUE_HEAD(tl_event_queue);
@@ -272,8 +269,8 @@ static const struct tp_desc tp_desc_obj[] = {
KBASE_TL_NEW_CTX,
__stringify(KBASE_TL_NEW_CTX),
"object ctx is created",
- "@pII",
- "ctx,ctx_nr,tgid"
+ "@pI",
+ "ctx,ctx_nr"
},
{
KBASE_TL_NEW_GPU,
@@ -409,20 +406,6 @@ static const struct tp_desc tp_desc_obj[] = {
"atom1,atom2"
},
{
- KBASE_TL_NDEP_ATOM_ATOM,
- __stringify(KBASE_TL_NDEP_ATOM_ATOM),
- "atom2 no longer depends on atom1",
- "@pp",
- "atom1,atom2"
- },
- {
- KBASE_TL_RDEP_ATOM_ATOM,
- __stringify(KBASE_TL_RDEP_ATOM_ATOM),
- "resolved dependecy of atom2 depending on atom1",
- "@pp",
- "atom1,atom2"
- },
- {
KBASE_TL_ATTRIB_ATOM_CONFIG,
__stringify(KBASE_TL_ATTRIB_ATOM_CONFIG),
"atom job slot attributes",
@@ -455,13 +438,6 @@ static const struct tp_desc tp_desc_aux[] = {
"core_type,core_state_bitset"
},
{
- KBASE_AUX_ISSUE_JOB_SOFTSTOP,
- __stringify(KBASE_AUX_ISSUE_JOB_SOFTSTOP),
- "Issuing job soft stop",
- "@p",
- "atom"
- },
- {
KBASE_AUX_JOB_SOFTSTOP,
__stringify(KBASE_AUX_JOB_SOFTSTOP),
"Job soft stop",
@@ -469,13 +445,6 @@ static const struct tp_desc tp_desc_aux[] = {
"tag_id"
},
{
- KBASE_AUX_JOB_SOFTSTOP_EX,
- __stringify(KBASE_AUX_JOB_SOFTSTOP_EX),
- "Job soft stop, more details",
- "@pI",
- "atom,job_type"
- },
- {
KBASE_AUX_PAGEFAULT,
__stringify(KBASE_AUX_PAGEFAULT),
"Page fault",
@@ -501,11 +470,6 @@ static atomic_t tlstream_bytes_generated = {0};
/*****************************************************************************/
-/* Indicator of whether the timeline stream file descriptor is used. */
-atomic_t kbase_tlstream_enabled = {0};
-
-/*****************************************************************************/
-
/**
* kbasep_tlstream_get_timestamp - return timestamp
*
@@ -809,9 +773,6 @@ static size_t kbasep_tlstream_msgbuf_submit(
unsigned int rb_idx_raw = atomic_read(&stream->rbi);
unsigned int wb_idx = wb_idx_raw % PACKET_COUNT;
- /* Set stream as flushed. */
- atomic_set(&stream->autoflush_counter, -1);
-
kbasep_tlstream_packet_header_update(
stream->buffer[wb_idx].data,
wb_size - PACKET_HEADER_SIZE);
@@ -867,7 +828,7 @@ static size_t kbasep_tlstream_msgbuf_submit(
static char *kbasep_tlstream_msgbuf_acquire(
enum tl_stream_type stream_type,
size_t msg_size,
- unsigned long *flags) __acquires(&stream->lock)
+ unsigned long *flags)
{
struct tl_stream *stream;
unsigned int wb_idx_raw;
@@ -914,16 +875,14 @@ static char *kbasep_tlstream_msgbuf_acquire(
*/
static void kbasep_tlstream_msgbuf_release(
enum tl_stream_type stream_type,
- unsigned long flags) __releases(&stream->lock)
+ unsigned long flags)
{
struct tl_stream *stream;
KBASE_DEBUG_ASSERT(TL_STREAM_TYPE_COUNT > stream_type);
stream = tl_stream[stream_type];
-
- /* Mark stream as containing unflushed data. */
- atomic_set(&stream->autoflush_counter, 0);
+ stream->last_write_time = kbasep_tlstream_get_timestamp();
spin_unlock_irqrestore(&stream->lock, flags);
}
@@ -985,22 +944,6 @@ static void kbasep_tlstream_autoflush_timer_callback(unsigned long data)
size_t wb_size;
size_t min_size = PACKET_HEADER_SIZE;
- int af_cnt = atomic_read(&stream->autoflush_counter);
-
- /* Check if stream contain unflushed data. */
- if (0 > af_cnt)
- continue;
-
- /* Check if stream should be flushed now. */
- if (af_cnt != atomic_cmpxchg(
- &stream->autoflush_counter,
- af_cnt,
- af_cnt + 1))
- continue;
- if (!af_cnt)
- continue;
-
- /* Autoflush this stream. */
if (stream->numbered)
min_size += PACKET_NUMBER_SIZE;
@@ -1011,11 +954,16 @@ static void kbasep_tlstream_autoflush_timer_callback(unsigned long data)
wb_size = atomic_read(&stream->buffer[wb_idx].size);
if (wb_size > min_size) {
- wb_size = kbasep_tlstream_msgbuf_submit(
- stream, wb_idx_raw, wb_size);
- wb_idx = (wb_idx_raw + 1) % PACKET_COUNT;
- atomic_set(&stream->buffer[wb_idx].size,
- wb_size);
+ u64 timestamp = kbasep_tlstream_get_timestamp();
+
+ if (timestamp - stream->last_write_time
+ > AUTOFLUSH_TIMEOUT) {
+ wb_size = kbasep_tlstream_msgbuf_submit(
+ stream, wb_idx_raw, wb_size);
+ wb_idx = (wb_idx_raw + 1) % PACKET_COUNT;
+ atomic_set(&stream->buffer[wb_idx].size,
+ wb_size);
+ }
}
spin_unlock_irqrestore(&stream->lock, flags);
}
@@ -1096,7 +1044,7 @@ static ssize_t kbasep_tlstream_read(
while (copy_len < size) {
enum tl_stream_type stype;
- unsigned int rb_idx_raw = 0;
+ unsigned int rb_idx_raw;
unsigned int rb_idx;
size_t rb_size;
@@ -1186,12 +1134,7 @@ static int kbasep_tlstream_release(struct inode *inode, struct file *filp)
KBASE_DEBUG_ASSERT(filp);
CSTD_UNUSED(inode);
CSTD_UNUSED(filp);
-
- /* Stop autoflush timer before releasing access to streams. */
- atomic_set(&autoflush_timer_active, 0);
- del_timer_sync(&autoflush_timer);
-
- atomic_set(&kbase_tlstream_enabled, 0);
+ atomic_set(&tlstream_busy, 0);
return 0;
}
@@ -1280,6 +1223,7 @@ static void kbasep_tlstream_timeline_header(
int kbase_tlstream_init(void)
{
enum tl_stream_type i;
+ int rcode;
/* Prepare stream structures. */
for (i = 0; i < TL_STREAM_TYPE_COUNT; i++) {
@@ -1297,10 +1241,14 @@ int kbase_tlstream_init(void)
}
/* Initialize autoflush timer. */
- atomic_set(&autoflush_timer_active, 0);
+ atomic_set(&autoflush_timer_active, 1);
setup_timer(&autoflush_timer,
kbasep_tlstream_autoflush_timer_callback,
0);
+ rcode = mod_timer(
+ &autoflush_timer,
+ jiffies + msecs_to_jiffies(AUTOFLUSH_INTERVAL));
+ CSTD_UNUSED(rcode);
return 0;
}
@@ -1309,6 +1257,9 @@ void kbase_tlstream_term(void)
{
enum tl_stream_type i;
+ atomic_set(&autoflush_timer_active, 0);
+ del_timer_sync(&autoflush_timer);
+
for (i = 0; i < TL_STREAM_TYPE_COUNT; i++) {
kbasep_timeline_stream_term(tl_stream[i]);
kfree(tl_stream[i]);
@@ -1317,16 +1268,14 @@ void kbase_tlstream_term(void)
int kbase_tlstream_acquire(struct kbase_context *kctx, int *fd)
{
- if (0 == atomic_cmpxchg(&kbase_tlstream_enabled, 0, 1)) {
- int rcode;
-
+ if (0 == atomic_cmpxchg(&tlstream_busy, 0, 1)) {
*fd = anon_inode_getfd(
"[mali_tlstream]",
&kbasep_tlstream_fops,
kctx,
O_RDONLY | O_CLOEXEC);
if (0 > *fd) {
- atomic_set(&kbase_tlstream_enabled, 0);
+ atomic_set(&tlstream_busy, 0);
return *fd;
}
@@ -1345,14 +1294,6 @@ int kbase_tlstream_acquire(struct kbase_context *kctx, int *fd)
TL_STREAM_TYPE_AUX_HEADER,
tp_desc_aux,
ARRAY_SIZE(tp_desc_aux));
-
- /* Start autoflush timer. */
- atomic_set(&autoflush_timer_active, 1);
- rcode = mod_timer(
- &autoflush_timer,
- jiffies + msecs_to_jiffies(AUTOFLUSH_INTERVAL));
- CSTD_UNUSED(rcode);
-
} else {
*fd = -EBUSY;
}
@@ -1388,12 +1329,11 @@ void kbase_tlstream_stats(u32 *bytes_collected, u32 *bytes_generated)
/*****************************************************************************/
-void __kbase_tlstream_tl_summary_new_ctx(void *context, u32 nr, u32 tgid)
+void kbase_tlstream_tl_summary_new_ctx(void *context, u32 nr)
{
const u32 msg_id = KBASE_TL_NEW_CTX;
const size_t msg_size =
- sizeof(msg_id) + sizeof(u64) + sizeof(context) + sizeof(nr) +
- sizeof(tgid);
+ sizeof(msg_id) + sizeof(u64) + sizeof(context) + sizeof(nr);
unsigned long flags;
char *buffer;
size_t pos = 0;
@@ -1409,15 +1349,12 @@ void __kbase_tlstream_tl_summary_new_ctx(void *context, u32 nr, u32 tgid)
buffer, pos, &context, sizeof(context));
pos = kbasep_tlstream_write_bytes(
buffer, pos, &nr, sizeof(nr));
- pos = kbasep_tlstream_write_bytes(
- buffer, pos, &tgid, sizeof(tgid));
-
KBASE_DEBUG_ASSERT(msg_size == pos);
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ_SUMMARY, flags);
}
-void __kbase_tlstream_tl_summary_new_gpu(void *gpu, u32 id, u32 core_count)
+void kbase_tlstream_tl_summary_new_gpu(void *gpu, u32 id, u32 core_count)
{
const u32 msg_id = KBASE_TL_NEW_GPU;
const size_t msg_size =
@@ -1445,7 +1382,7 @@ void __kbase_tlstream_tl_summary_new_gpu(void *gpu, u32 id, u32 core_count)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ_SUMMARY, flags);
}
-void __kbase_tlstream_tl_summary_new_lpu(void *lpu, u32 nr, u32 fn)
+void kbase_tlstream_tl_summary_new_lpu(void *lpu, u32 nr, u32 fn)
{
const u32 msg_id = KBASE_TL_NEW_LPU;
const size_t msg_size =
@@ -1473,7 +1410,7 @@ void __kbase_tlstream_tl_summary_new_lpu(void *lpu, u32 nr, u32 fn)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ_SUMMARY, flags);
}
-void __kbase_tlstream_tl_summary_lifelink_lpu_gpu(void *lpu, void *gpu)
+void kbase_tlstream_tl_summary_lifelink_lpu_gpu(void *lpu, void *gpu)
{
const u32 msg_id = KBASE_TL_LIFELINK_LPU_GPU;
const size_t msg_size =
@@ -1498,7 +1435,7 @@ void __kbase_tlstream_tl_summary_lifelink_lpu_gpu(void *lpu, void *gpu)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ_SUMMARY, flags);
}
-void __kbase_tlstream_tl_summary_new_as(void *as, u32 nr)
+void kbase_tlstream_tl_summary_new_as(void *as, u32 nr)
{
const u32 msg_id = KBASE_TL_NEW_AS;
const size_t msg_size =
@@ -1523,7 +1460,7 @@ void __kbase_tlstream_tl_summary_new_as(void *as, u32 nr)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ_SUMMARY, flags);
}
-void __kbase_tlstream_tl_summary_lifelink_as_gpu(void *as, void *gpu)
+void kbase_tlstream_tl_summary_lifelink_as_gpu(void *as, void *gpu)
{
const u32 msg_id = KBASE_TL_LIFELINK_AS_GPU;
const size_t msg_size =
@@ -1550,12 +1487,11 @@ void __kbase_tlstream_tl_summary_lifelink_as_gpu(void *as, void *gpu)
/*****************************************************************************/
-void __kbase_tlstream_tl_new_ctx(void *context, u32 nr, u32 tgid)
+void kbase_tlstream_tl_new_ctx(void *context, u32 nr)
{
const u32 msg_id = KBASE_TL_NEW_CTX;
const size_t msg_size =
- sizeof(msg_id) + sizeof(u64) + sizeof(context) + sizeof(nr) +
- sizeof(tgid);
+ sizeof(msg_id) + sizeof(u64) + sizeof(context) + sizeof(nr);
unsigned long flags;
char *buffer;
size_t pos = 0;
@@ -1571,14 +1507,12 @@ void __kbase_tlstream_tl_new_ctx(void *context, u32 nr, u32 tgid)
buffer, pos, &context, sizeof(context));
pos = kbasep_tlstream_write_bytes(
buffer, pos, &nr, sizeof(nr));
- pos = kbasep_tlstream_write_bytes(
- buffer, pos, &tgid, sizeof(tgid));
KBASE_DEBUG_ASSERT(msg_size == pos);
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_new_atom(void *atom, u32 nr)
+void kbase_tlstream_tl_new_atom(void *atom, u32 nr)
{
const u32 msg_id = KBASE_TL_NEW_ATOM;
const size_t msg_size =
@@ -1603,7 +1537,7 @@ void __kbase_tlstream_tl_new_atom(void *atom, u32 nr)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_del_ctx(void *context)
+void kbase_tlstream_tl_del_ctx(void *context)
{
const u32 msg_id = KBASE_TL_DEL_CTX;
const size_t msg_size =
@@ -1626,7 +1560,7 @@ void __kbase_tlstream_tl_del_ctx(void *context)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_del_atom(void *atom)
+void kbase_tlstream_tl_del_atom(void *atom)
{
const u32 msg_id = KBASE_TL_DEL_ATOM;
const size_t msg_size =
@@ -1649,7 +1583,7 @@ void __kbase_tlstream_tl_del_atom(void *atom)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_ret_ctx_lpu(void *context, void *lpu)
+void kbase_tlstream_tl_ret_ctx_lpu(void *context, void *lpu)
{
const u32 msg_id = KBASE_TL_RET_CTX_LPU;
const size_t msg_size =
@@ -1674,7 +1608,7 @@ void __kbase_tlstream_tl_ret_ctx_lpu(void *context, void *lpu)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_ret_atom_ctx(void *atom, void *context)
+void kbase_tlstream_tl_ret_atom_ctx(void *atom, void *context)
{
const u32 msg_id = KBASE_TL_RET_ATOM_CTX;
const size_t msg_size =
@@ -1699,7 +1633,7 @@ void __kbase_tlstream_tl_ret_atom_ctx(void *atom, void *context)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_ret_atom_lpu(
+void kbase_tlstream_tl_ret_atom_lpu(
void *atom, void *lpu, const char *attrib_match_list)
{
const u32 msg_id = KBASE_TL_RET_ATOM_LPU;
@@ -1730,7 +1664,7 @@ void __kbase_tlstream_tl_ret_atom_lpu(
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_nret_ctx_lpu(void *context, void *lpu)
+void kbase_tlstream_tl_nret_ctx_lpu(void *context, void *lpu)
{
const u32 msg_id = KBASE_TL_NRET_CTX_LPU;
const size_t msg_size =
@@ -1755,7 +1689,7 @@ void __kbase_tlstream_tl_nret_ctx_lpu(void *context, void *lpu)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_nret_atom_ctx(void *atom, void *context)
+void kbase_tlstream_tl_nret_atom_ctx(void *atom, void *context)
{
const u32 msg_id = KBASE_TL_NRET_ATOM_CTX;
const size_t msg_size =
@@ -1780,7 +1714,7 @@ void __kbase_tlstream_tl_nret_atom_ctx(void *atom, void *context)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_dep_atom_atom(void *atom1, void *atom2)
+void kbase_tlstream_tl_dep_atom_atom(void *atom1, void *atom2)
{
const u32 msg_id = KBASE_TL_DEP_ATOM_ATOM;
const size_t msg_size =
@@ -1805,57 +1739,7 @@ void __kbase_tlstream_tl_dep_atom_atom(void *atom1, void *atom2)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_ndep_atom_atom(void *atom1, void *atom2)
-{
- const u32 msg_id = KBASE_TL_NDEP_ATOM_ATOM;
- const size_t msg_size =
- sizeof(msg_id) + sizeof(u64) + sizeof(atom1) + sizeof(atom2);
- unsigned long flags;
- char *buffer;
- size_t pos = 0;
-
- buffer = kbasep_tlstream_msgbuf_acquire(
- TL_STREAM_TYPE_OBJ,
- msg_size, &flags);
- KBASE_DEBUG_ASSERT(buffer);
-
- pos = kbasep_tlstream_write_bytes(buffer, pos, &msg_id, sizeof(msg_id));
- pos = kbasep_tlstream_write_timestamp(buffer, pos);
- pos = kbasep_tlstream_write_bytes(
- buffer, pos, &atom1, sizeof(atom1));
- pos = kbasep_tlstream_write_bytes(
- buffer, pos, &atom2, sizeof(atom2));
- KBASE_DEBUG_ASSERT(msg_size == pos);
-
- kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
-}
-
-void __kbase_tlstream_tl_rdep_atom_atom(void *atom1, void *atom2)
-{
- const u32 msg_id = KBASE_TL_RDEP_ATOM_ATOM;
- const size_t msg_size =
- sizeof(msg_id) + sizeof(u64) + sizeof(atom1) + sizeof(atom2);
- unsigned long flags;
- char *buffer;
- size_t pos = 0;
-
- buffer = kbasep_tlstream_msgbuf_acquire(
- TL_STREAM_TYPE_OBJ,
- msg_size, &flags);
- KBASE_DEBUG_ASSERT(buffer);
-
- pos = kbasep_tlstream_write_bytes(buffer, pos, &msg_id, sizeof(msg_id));
- pos = kbasep_tlstream_write_timestamp(buffer, pos);
- pos = kbasep_tlstream_write_bytes(
- buffer, pos, &atom1, sizeof(atom1));
- pos = kbasep_tlstream_write_bytes(
- buffer, pos, &atom2, sizeof(atom2));
- KBASE_DEBUG_ASSERT(msg_size == pos);
-
- kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
-}
-
-void __kbase_tlstream_tl_nret_atom_lpu(void *atom, void *lpu)
+void kbase_tlstream_tl_nret_atom_lpu(void *atom, void *lpu)
{
const u32 msg_id = KBASE_TL_NRET_ATOM_LPU;
const size_t msg_size =
@@ -1880,7 +1764,7 @@ void __kbase_tlstream_tl_nret_atom_lpu(void *atom, void *lpu)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_ret_as_ctx(void *as, void *ctx)
+void kbase_tlstream_tl_ret_as_ctx(void *as, void *ctx)
{
const u32 msg_id = KBASE_TL_RET_AS_CTX;
const size_t msg_size =
@@ -1905,7 +1789,7 @@ void __kbase_tlstream_tl_ret_as_ctx(void *as, void *ctx)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_nret_as_ctx(void *as, void *ctx)
+void kbase_tlstream_tl_nret_as_ctx(void *as, void *ctx)
{
const u32 msg_id = KBASE_TL_NRET_AS_CTX;
const size_t msg_size =
@@ -1930,7 +1814,7 @@ void __kbase_tlstream_tl_nret_as_ctx(void *as, void *ctx)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_ret_atom_as(void *atom, void *as)
+void kbase_tlstream_tl_ret_atom_as(void *atom, void *as)
{
const u32 msg_id = KBASE_TL_RET_ATOM_AS;
const size_t msg_size =
@@ -1955,7 +1839,7 @@ void __kbase_tlstream_tl_ret_atom_as(void *atom, void *as)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_nret_atom_as(void *atom, void *as)
+void kbase_tlstream_tl_nret_atom_as(void *atom, void *as)
{
const u32 msg_id = KBASE_TL_NRET_ATOM_AS;
const size_t msg_size =
@@ -1980,7 +1864,7 @@ void __kbase_tlstream_tl_nret_atom_as(void *atom, void *as)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_attrib_atom_config(
+void kbase_tlstream_tl_attrib_atom_config(
void *atom, u64 jd, u64 affinity, u32 config)
{
const u32 msg_id = KBASE_TL_ATTRIB_ATOM_CONFIG;
@@ -2011,7 +1895,7 @@ void __kbase_tlstream_tl_attrib_atom_config(
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_tl_attrib_as_config(
+void kbase_tlstream_tl_attrib_as_config(
void *as, u64 transtab, u64 memattr, u64 transcfg)
{
const u32 msg_id = KBASE_TL_ATTRIB_AS_CONFIG;
@@ -2042,7 +1926,7 @@ void __kbase_tlstream_tl_attrib_as_config(
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_OBJ, flags);
}
-void __kbase_tlstream_jd_gpu_soft_reset(void *gpu)
+void kbase_tlstream_jd_gpu_soft_reset(void *gpu)
{
const u32 msg_id = KBASE_JD_GPU_SOFT_RESET;
const size_t msg_size =
@@ -2067,7 +1951,7 @@ void __kbase_tlstream_jd_gpu_soft_reset(void *gpu)
/*****************************************************************************/
-void __kbase_tlstream_aux_pm_state(u32 core_type, u64 state)
+void kbase_tlstream_aux_pm_state(u32 core_type, u64 state)
{
const u32 msg_id = KBASE_AUX_PM_STATE;
const size_t msg_size =
@@ -2092,28 +1976,7 @@ void __kbase_tlstream_aux_pm_state(u32 core_type, u64 state)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_AUX, flags);
}
-void __kbase_tlstream_aux_issue_job_softstop(void *katom)
-{
- const u32 msg_id = KBASE_AUX_ISSUE_JOB_SOFTSTOP;
- const size_t msg_size =
- sizeof(msg_id) + sizeof(u64) + sizeof(katom);
- unsigned long flags;
- char *buffer;
- size_t pos = 0;
-
- buffer = kbasep_tlstream_msgbuf_acquire(
- TL_STREAM_TYPE_AUX, msg_size, &flags);
- KBASE_DEBUG_ASSERT(buffer);
-
- pos = kbasep_tlstream_write_bytes(buffer, pos, &msg_id, sizeof(msg_id));
- pos = kbasep_tlstream_write_timestamp(buffer, pos);
- pos = kbasep_tlstream_write_bytes(buffer, pos, &katom, sizeof(katom));
- KBASE_DEBUG_ASSERT(msg_size == pos);
-
- kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_AUX, flags);
-}
-
-void __kbase_tlstream_aux_job_softstop(u32 js_id)
+void kbase_tlstream_aux_job_softstop(u32 js_id)
{
const u32 msg_id = KBASE_AUX_JOB_SOFTSTOP;
const size_t msg_size =
@@ -2135,66 +1998,7 @@ void __kbase_tlstream_aux_job_softstop(u32 js_id)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_AUX, flags);
}
-/**
- * __kbase_tlstream_aux_job_softstop_ex_record - record the trace point
- * @katom: the atom that has been soft-stopped
- * @job_type: the job type
- */
-static void __kbase_tlstream_aux_job_softstop_ex_record(
- void *katom, u32 job_type)
-{
- const u32 msg_id = KBASE_AUX_JOB_SOFTSTOP_EX;
- const size_t msg_size =
- sizeof(msg_id) + sizeof(u64) + sizeof(katom) + sizeof(job_type);
- unsigned long flags;
- char *buffer;
- size_t pos = 0;
-
- buffer = kbasep_tlstream_msgbuf_acquire(
- TL_STREAM_TYPE_AUX, msg_size, &flags);
- KBASE_DEBUG_ASSERT(buffer);
-
- pos = kbasep_tlstream_write_bytes(buffer, pos, &msg_id, sizeof(msg_id));
- pos = kbasep_tlstream_write_timestamp(buffer, pos);
- pos = kbasep_tlstream_write_bytes(buffer, pos, &katom, sizeof(katom));
- pos = kbasep_tlstream_write_bytes(
- buffer, pos, &job_type, sizeof(job_type));
- KBASE_DEBUG_ASSERT(msg_size == pos);
-
- kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_AUX, flags);
-}
-
-void __kbase_tlstream_aux_job_softstop_ex(struct kbase_jd_atom *katom)
-{
- struct kbase_context *kctx = katom->kctx;
- u64 jd = katom->jc;
-
- while (jd != 0) {
- struct job_descriptor_header *job;
- struct kbase_vmap_struct map;
-
- job = kbase_vmap(kctx, jd, sizeof(*job), &map);
- if (!job) {
- dev_err(kctx->kbdev->dev,
- "__kbase_tlstream_aux_job_softstop_ex: failed to map job descriptor 0x%llx for atom 0x%p\n",
- jd, (void *)katom);
- break;
- }
- if (job->exception_status != BASE_JD_EVENT_STOPPED) {
- kbase_vunmap(kctx, &map);
- break;
- }
-
- __kbase_tlstream_aux_job_softstop_ex_record(
- katom, job->job_type);
-
- jd = job->job_descriptor_size ?
- job->next_job._64 : job->next_job._32;
- kbase_vunmap(kctx, &map);
- }
-}
-
-void __kbase_tlstream_aux_pagefault(u32 ctx_nr, u64 page_count_change)
+void kbase_tlstream_aux_pagefault(u32 ctx_nr, u64 page_count_change)
{
const u32 msg_id = KBASE_AUX_PAGEFAULT;
const size_t msg_size =
@@ -2219,7 +2023,7 @@ void __kbase_tlstream_aux_pagefault(u32 ctx_nr, u64 page_count_change)
kbasep_tlstream_msgbuf_release(TL_STREAM_TYPE_AUX, flags);
}
-void __kbase_tlstream_aux_pagesalloc(u32 ctx_nr, u64 page_count)
+void kbase_tlstream_aux_pagesalloc(u32 ctx_nr, u64 page_count)
{
const u32 msg_id = KBASE_AUX_PAGESALLOC;
const size_t msg_size =