diff options
Diffstat (limited to 'drivers/gpu/arm/midgard/mali_kbase_tlstream.h')
-rw-r--r-- | drivers/gpu/arm/midgard/mali_kbase_tlstream.h | 181 |
1 files changed, 32 insertions, 149 deletions
diff --git a/drivers/gpu/arm/midgard/mali_kbase_tlstream.h b/drivers/gpu/arm/midgard/mali_kbase_tlstream.h index 22a0d96f9a72..eccd469a86e8 100644 --- a/drivers/gpu/arm/midgard/mali_kbase_tlstream.h +++ b/drivers/gpu/arm/midgard/mali_kbase_tlstream.h @@ -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 @@ -102,67 +102,18 @@ 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_gpu(void *gpu, u32 id, u32 core_count); -void __kbase_tlstream_tl_summary_new_lpu(void *lpu, u32 nr, u32 fn); -void __kbase_tlstream_tl_summary_lifelink_lpu_gpu(void *lpu, void *gpu); -void __kbase_tlstream_tl_summary_new_as(void *as, u32 nr); -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_atom(void *atom, u32 nr); -void __kbase_tlstream_tl_del_ctx(void *context); -void __kbase_tlstream_tl_del_atom(void *atom); -void __kbase_tlstream_tl_ret_ctx_lpu(void *context, void *lpu); -void __kbase_tlstream_tl_ret_atom_ctx(void *atom, void *context); -void __kbase_tlstream_tl_ret_atom_lpu( - void *atom, void *lpu, const char *attrib_match_list); -void __kbase_tlstream_tl_nret_ctx_lpu(void *context, void *lpu); -void __kbase_tlstream_tl_nret_atom_ctx(void *atom, void *context); -void __kbase_tlstream_tl_nret_atom_lpu(void *atom, void *lpu); -void __kbase_tlstream_tl_ret_as_ctx(void *as, void *ctx); -void __kbase_tlstream_tl_nret_as_ctx(void *as, void *ctx); -void __kbase_tlstream_tl_ret_atom_as(void *atom, void *as); -void __kbase_tlstream_tl_nret_atom_as(void *atom, void *as); -void __kbase_tlstream_tl_dep_atom_atom(void *atom1, void *atom2); -void __kbase_tlstream_tl_ndep_atom_atom(void *atom1, void *atom2); -void __kbase_tlstream_tl_rdep_atom_atom(void *atom1, void *atom2); -void __kbase_tlstream_tl_attrib_atom_config( - void *atom, u64 jd, u64 affinity, u32 config); -void __kbase_tlstream_tl_attrib_as_config( - void *as, u64 transtab, u64 memattr, u64 transcfg); -void __kbase_tlstream_jd_gpu_soft_reset(void *gpu); -void __kbase_tlstream_aux_pm_state(u32 core_type, u64 state); -void __kbase_tlstream_aux_issue_job_softstop(void *katom); -void __kbase_tlstream_aux_job_softstop(u32 js_id); -void __kbase_tlstream_aux_job_softstop_ex(struct kbase_jd_atom *katom); -void __kbase_tlstream_aux_pagefault(u32 ctx_nr, u64 page_count_change); -void __kbase_tlstream_aux_pagesalloc(u32 ctx_nr, u64 page_count); - -extern atomic_t kbase_tlstream_enabled; - -#define __TRACE_IF_ENABLED(trace_name, ...) \ - do { \ - int enabled = atomic_read(&kbase_tlstream_enabled); \ - if (enabled) \ - __kbase_tlstream_##trace_name(__VA_ARGS__); \ - } while (0) - -/*****************************************************************************/ - /** * kbase_tlstream_tl_summary_new_ctx - create context object in timeline * summary * @context: name of the context object * @nr: context number - * @tgid: thread Group Id * * Function emits a timeline message informing about context creation. Context * is created with context number (its attribute), that can be used to link * kbase context with userspace context. * This message is directed to timeline summary stream. */ -#define kbase_tlstream_tl_summary_new_ctx(context, nr, tgid) \ - __TRACE_IF_ENABLED(tl_summary_new_ctx, context, nr, tgid) +void kbase_tlstream_tl_summary_new_ctx(void *context, u32 nr); /** * kbase_tlstream_tl_summary_new_gpu - create GPU object in timeline summary @@ -174,8 +125,7 @@ extern atomic_t kbase_tlstream_enabled; * created with two attributes: id and core count. * This message is directed to timeline summary stream. */ -#define kbase_tlstream_tl_summary_new_gpu(gpu, id, core_count) \ - __TRACE_IF_ENABLED(tl_summary_new_gpu, gpu, id, core_count) +void kbase_tlstream_tl_summary_new_gpu(void *gpu, u32 id, u32 core_count); /** * kbase_tlstream_tl_summary_new_lpu - create LPU object in timeline summary @@ -188,8 +138,7 @@ extern atomic_t kbase_tlstream_enabled; * and function bearing information about this LPU abilities. * This message is directed to timeline summary stream. */ -#define kbase_tlstream_tl_summary_new_lpu(lpu, nr, fn) \ - __TRACE_IF_ENABLED(tl_summary_new_lpu, lpu, nr, fn) +void kbase_tlstream_tl_summary_new_lpu(void *lpu, u32 nr, u32 fn); /** * kbase_tlstream_tl_summary_lifelink_lpu_gpu - lifelink LPU object to GPU @@ -200,8 +149,7 @@ extern atomic_t kbase_tlstream_enabled; * along with GPU object. * This message is directed to timeline summary stream. */ -#define kbase_tlstream_tl_summary_lifelink_lpu_gpu(lpu, gpu) \ - __TRACE_IF_ENABLED(tl_summary_lifelink_lpu_gpu, lpu, gpu) +void kbase_tlstream_tl_summary_lifelink_lpu_gpu(void *lpu, void *gpu); /** * kbase_tlstream_tl_summary_new_as - create address space object in timeline summary @@ -213,8 +161,7 @@ extern atomic_t kbase_tlstream_enabled; * address space. * This message is directed to timeline summary stream. */ -#define kbase_tlstream_tl_summary_new_as(as, nr) \ - __TRACE_IF_ENABLED(tl_summary_new_as, as, nr) +void kbase_tlstream_tl_summary_new_as(void *as, u32 nr); /** * kbase_tlstream_tl_summary_lifelink_as_gpu - lifelink address space object to GPU @@ -225,21 +172,18 @@ extern atomic_t kbase_tlstream_enabled; * shall be deleted along with GPU object. * This message is directed to timeline summary stream. */ -#define kbase_tlstream_tl_summary_lifelink_as_gpu(as, gpu) \ - __TRACE_IF_ENABLED(tl_summary_lifelink_as_gpu, as, gpu) +void kbase_tlstream_tl_summary_lifelink_as_gpu(void *as, void *gpu); /** * kbase_tlstream_tl_new_ctx - create context object in timeline * @context: name of the context object * @nr: context number - * @tgid: thread Group Id * * Function emits a timeline message informing about context creation. Context * is created with context number (its attribute), that can be used to link * kbase context with userspace context. */ -#define kbase_tlstream_tl_new_ctx(context, nr, tgid) \ - __TRACE_IF_ENABLED(tl_new_ctx, context, nr, tgid) +void kbase_tlstream_tl_new_ctx(void *context, u32 nr); /** * kbase_tlstream_tl_new_atom - create atom object in timeline @@ -250,8 +194,7 @@ extern atomic_t kbase_tlstream_enabled; * created with atom number (its attribute) that links it with actual work * bucket id understood by hardware. */ -#define kbase_tlstream_tl_new_atom(atom, nr) \ - __TRACE_IF_ENABLED(tl_new_atom, atom, nr) +void kbase_tlstream_tl_new_atom(void *atom, u32 nr); /** * kbase_tlstream_tl_del_ctx - destroy context object in timeline @@ -260,8 +203,7 @@ extern atomic_t kbase_tlstream_enabled; * Function emits a timeline message informing that context object ceased to * exist. */ -#define kbase_tlstream_tl_del_ctx(context) \ - __TRACE_IF_ENABLED(tl_del_ctx, context) +void kbase_tlstream_tl_del_ctx(void *context); /** * kbase_tlstream_tl_del_atom - destroy atom object in timeline @@ -270,8 +212,7 @@ extern atomic_t kbase_tlstream_enabled; * Function emits a timeline message informing that atom object ceased to * exist. */ -#define kbase_tlstream_tl_del_atom(atom) \ - __TRACE_IF_ENABLED(tl_del_atom, atom) +void kbase_tlstream_tl_del_atom(void *atom); /** * kbase_tlstream_tl_ret_ctx_lpu - retain context by LPU @@ -281,8 +222,7 @@ extern atomic_t kbase_tlstream_enabled; * Function emits a timeline message informing that context is being held * by LPU and must not be deleted unless it is released. */ -#define kbase_tlstream_tl_ret_ctx_lpu(context, lpu) \ - __TRACE_IF_ENABLED(tl_ret_ctx_lpu, context, lpu) +void kbase_tlstream_tl_ret_ctx_lpu(void *context, void *lpu); /** * kbase_tlstream_tl_ret_atom_ctx - retain atom by context @@ -292,8 +232,7 @@ extern atomic_t kbase_tlstream_enabled; * Function emits a timeline message informing that atom object is being held * by context and must not be deleted unless it is released. */ -#define kbase_tlstream_tl_ret_atom_ctx(atom, context) \ - __TRACE_IF_ENABLED(tl_ret_atom_ctx, atom, context) +void kbase_tlstream_tl_ret_atom_ctx(void *atom, void *context); /** * kbase_tlstream_tl_ret_atom_lpu - retain atom by LPU @@ -304,8 +243,8 @@ extern atomic_t kbase_tlstream_enabled; * Function emits a timeline message informing that atom object is being held * by LPU and must not be deleted unless it is released. */ -#define kbase_tlstream_tl_ret_atom_lpu(atom, lpu, attrib_match_list) \ - __TRACE_IF_ENABLED(tl_ret_atom_lpu, atom, lpu, attrib_match_list) +void kbase_tlstream_tl_ret_atom_lpu( + void *atom, void *lpu, const char *attrib_match_list); /** * kbase_tlstream_tl_nret_ctx_lpu - release context by LPU @@ -315,8 +254,7 @@ extern atomic_t kbase_tlstream_enabled; * Function emits a timeline message informing that context is being released * by LPU object. */ -#define kbase_tlstream_tl_nret_ctx_lpu(context, lpu) \ - __TRACE_IF_ENABLED(tl_nret_ctx_lpu, context, lpu) +void kbase_tlstream_tl_nret_ctx_lpu(void *context, void *lpu); /** * kbase_tlstream_tl_nret_atom_ctx - release atom by context @@ -326,8 +264,7 @@ extern atomic_t kbase_tlstream_enabled; * Function emits a timeline message informing that atom object is being * released by context. */ -#define kbase_tlstream_tl_nret_atom_ctx(atom, context) \ - __TRACE_IF_ENABLED(tl_nret_atom_ctx, atom, context) +void kbase_tlstream_tl_nret_atom_ctx(void *atom, void *context); /** * kbase_tlstream_tl_nret_atom_lpu - release atom by LPU @@ -337,8 +274,7 @@ extern atomic_t kbase_tlstream_enabled; * Function emits a timeline message informing that atom object is being * released by LPU. */ -#define kbase_tlstream_tl_nret_atom_lpu(atom, lpu) \ - __TRACE_IF_ENABLED(tl_nret_atom_lpu, atom, lpu) +void kbase_tlstream_tl_nret_atom_lpu(void *atom, void *lpu); /** * kbase_tlstream_tl_ret_as_ctx - lifelink address space object to context @@ -348,8 +284,7 @@ extern atomic_t kbase_tlstream_enabled; * Function emits a timeline message informing that address space object * is being held by the context object. */ -#define kbase_tlstream_tl_ret_as_ctx(as, ctx) \ - __TRACE_IF_ENABLED(tl_ret_as_ctx, as, ctx) +void kbase_tlstream_tl_ret_as_ctx(void *as, void *ctx); /** * kbase_tlstream_tl_nret_as_ctx - release address space by context @@ -359,8 +294,7 @@ extern atomic_t kbase_tlstream_enabled; * Function emits a timeline message informing that address space object * is being released by atom. */ -#define kbase_tlstream_tl_nret_as_ctx(as, ctx) \ - __TRACE_IF_ENABLED(tl_nret_as_ctx, as, ctx) +void kbase_tlstream_tl_nret_as_ctx(void *as, void *ctx); /** * kbase_tlstream_tl_ret_atom_as - retain atom by address space @@ -370,8 +304,7 @@ extern atomic_t kbase_tlstream_enabled; * Function emits a timeline message informing that atom object is being held * by address space and must not be deleted unless it is released. */ -#define kbase_tlstream_tl_ret_atom_as(atom, as) \ - __TRACE_IF_ENABLED(tl_ret_atom_as, atom, as) +void kbase_tlstream_tl_ret_atom_as(void *atom, void *as); /** * kbase_tlstream_tl_nret_atom_as - release atom by address space @@ -381,8 +314,7 @@ extern atomic_t kbase_tlstream_enabled; * Function emits a timeline message informing that atom object is being * released by address space. */ -#define kbase_tlstream_tl_nret_atom_as(atom, as) \ - __TRACE_IF_ENABLED(tl_nret_atom_as, atom, as) +void kbase_tlstream_tl_nret_atom_as(void *atom, void *as); /** * kbase_tlstream_tl_dep_atom_atom - parent atom depends on child atom @@ -392,30 +324,7 @@ extern atomic_t kbase_tlstream_enabled; * Function emits a timeline message informing that parent atom waits for * child atom object to be completed before start its execution. */ -#define kbase_tlstream_tl_dep_atom_atom(atom1, atom2) \ - __TRACE_IF_ENABLED(tl_dep_atom_atom, atom1, atom2) - -/** - * kbase_tlstream_tl_ndep_atom_atom - dependency between atoms resolved - * @atom1: name of the child atom object - * @atom2: name of the parent atom object that depended on child atom - * - * Function emits a timeline message informing that parent atom execution - * dependency on child atom has been resolved. - */ -#define kbase_tlstream_tl_ndep_atom_atom(atom1, atom2) \ - __TRACE_IF_ENABLED(tl_ndep_atom_atom, atom1, atom2) - -/** - * kbase_tlstream_tl_rdep_atom_atom - information about already resolved dependency between atoms - * @atom1: name of the child atom object - * @atom2: name of the parent atom object that depended on child atom - * - * Function emits a timeline message informing that parent atom execution - * dependency on child atom has been resolved. - */ -#define kbase_tlstream_tl_rdep_atom_atom(atom1, atom2) \ - __TRACE_IF_ENABLED(tl_rdep_atom_atom, atom1, atom2) +void kbase_tlstream_tl_dep_atom_atom(void *atom1, void *atom2); /** * kbase_tlstream_tl_attrib_atom_config - atom job slot attributes @@ -426,8 +335,8 @@ extern atomic_t kbase_tlstream_enabled; * * Function emits a timeline message containing atom attributes. */ -#define kbase_tlstream_tl_attrib_atom_config(atom, jd, affinity, config) \ - __TRACE_IF_ENABLED(tl_attrib_atom_config, atom, jd, affinity, config) +void kbase_tlstream_tl_attrib_atom_config( + void *atom, u64 jd, u64 affinity, u32 config); /** * kbase_tlstream_tl_attrib_as_config - address space attributes @@ -438,8 +347,8 @@ extern atomic_t kbase_tlstream_enabled; * * Function emits a timeline message containing address space attributes. */ -#define kbase_tlstream_tl_attrib_as_config(as, transtab, memattr, transcfg) \ - __TRACE_IF_ENABLED(tl_attrib_as_config, as, transtab, memattr, transcfg) +void kbase_tlstream_tl_attrib_as_config( + void *as, u64 transtab, u64 memattr, u64 transcfg); /** * kbase_tlstream_jd_gpu_soft_reset - The GPU is being soft reset @@ -448,44 +357,20 @@ extern atomic_t kbase_tlstream_enabled; * This imperative tracepoint is specific to job dumping. * Function emits a timeline message indicating GPU soft reset. */ -#define kbase_tlstream_jd_gpu_soft_reset(gpu) \ - __TRACE_IF_ENABLED(jd_gpu_soft_reset, gpu) +void kbase_tlstream_jd_gpu_soft_reset(void *gpu); /** * kbase_tlstream_aux_pm_state - timeline message: power management state * @core_type: core type (shader, tiler, l2 cache, l3 cache) * @state: 64bits bitmask reporting power state of the cores (1-ON, 0-OFF) */ -#define kbase_tlstream_aux_pm_state(core_type, state) \ - __TRACE_IF_ENABLED(aux_pm_state, core_type, state) - -/** - * kbase_tlstream_aux_issue_job_softstop - a soft-stop command is being issued - * @katom: the atom that is being soft-stopped - */ -#define kbase_tlstream_aux_issue_job_softstop(katom) \ - __TRACE_IF_ENABLED(aux_issue_job_softstop, katom) +void kbase_tlstream_aux_pm_state(u32 core_type, u64 state); /** * kbase_tlstream_aux_job_softstop - soft job stop occurred * @js_id: job slot id */ -#define kbase_tlstream_aux_job_softstop(js_id) \ - __TRACE_IF_ENABLED(aux_job_softstop, js_id) - -/** - * kbase_tlstream_aux_job_softstop_ex - extra info about soft-stopped atom - * @katom: the atom that has been soft-stopped - * - * This trace point adds more details about the soft-stopped atom. These details - * can't be safety collected inside the interrupt handler so we're doing it - * inside a worker. - * - * Note: this is not the same information that is recorded in the trace point, - * refer to __kbase_tlstream_aux_job_softstop_ex() for more details. - */ -#define kbase_tlstream_aux_job_softstop_ex(katom) \ - __TRACE_IF_ENABLED(aux_job_softstop_ex, katom) +void kbase_tlstream_aux_job_softstop(u32 js_id); /** * kbase_tlstream_aux_pagefault - timeline message: MMU page fault event @@ -493,8 +378,7 @@ extern atomic_t kbase_tlstream_enabled; * @ctx_nr: kernel context number * @page_count_change: number of pages to be added */ -#define kbase_tlstream_aux_pagefault(ctx_nr, page_count_change) \ - __TRACE_IF_ENABLED(aux_pagefault, ctx_nr, page_count_change) +void kbase_tlstream_aux_pagefault(u32 ctx_nr, u64 page_count_change); /** * kbase_tlstream_aux_pagesalloc - timeline message: total number of allocated @@ -502,8 +386,7 @@ extern atomic_t kbase_tlstream_enabled; * @ctx_nr: kernel context number * @page_count: number of pages used by the context */ -#define kbase_tlstream_aux_pagesalloc(ctx_nr, page_count) \ - __TRACE_IF_ENABLED(aux_pagesalloc, ctx_nr, page_count) +void kbase_tlstream_aux_pagesalloc(u32 ctx_nr, u64 page_count); #endif /* _KBASE_TLSTREAM_H */ |