4256 lines
121 KiB
C
4256 lines
121 KiB
C
// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
|
|
/*
|
|
*
|
|
* (C) COPYRIGHT 2010-2024 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
|
|
* Foundation, and any use by you of this program is subject to the terms
|
|
* of such GNU license.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, you can access it online at
|
|
* http://www.gnu.org/licenses/gpl-2.0.html.
|
|
*
|
|
*/
|
|
|
|
/*
|
|
* THIS FILE IS AUTOGENERATED BY generate_tracepoints.py.
|
|
* DO NOT EDIT.
|
|
*/
|
|
|
|
#include "mali_kbase_tracepoints.h"
|
|
#include "mali_kbase_tlstream.h"
|
|
#include "mali_kbase_tl_serialize.h"
|
|
|
|
/* clang-format off */
|
|
|
|
/* Message ids of trace events that are recorded in the obj stream. */
|
|
enum tl_msg_id_obj {
|
|
KBASE_TL_NEW_CTX,
|
|
KBASE_TL_NEW_GPU,
|
|
KBASE_TL_NEW_LPU,
|
|
KBASE_TL_NEW_ATOM,
|
|
KBASE_TL_NEW_AS,
|
|
KBASE_TL_DEL_CTX,
|
|
KBASE_TL_DEL_ATOM,
|
|
KBASE_TL_LIFELINK_LPU_GPU,
|
|
KBASE_TL_LIFELINK_AS_GPU,
|
|
KBASE_TL_RET_CTX_LPU,
|
|
KBASE_TL_RET_ATOM_CTX,
|
|
KBASE_TL_RET_ATOM_LPU,
|
|
KBASE_TL_NRET_CTX_LPU,
|
|
KBASE_TL_NRET_ATOM_CTX,
|
|
KBASE_TL_NRET_ATOM_LPU,
|
|
KBASE_TL_RET_AS_CTX,
|
|
KBASE_TL_NRET_AS_CTX,
|
|
KBASE_TL_RET_ATOM_AS,
|
|
KBASE_TL_NRET_ATOM_AS,
|
|
KBASE_TL_ATTRIB_ATOM_CONFIG,
|
|
KBASE_TL_JIT_USEDPAGES,
|
|
KBASE_TL_ATTRIB_ATOM_JITALLOCINFO,
|
|
KBASE_TL_ATTRIB_ATOM_JITFREEINFO,
|
|
KBASE_TL_ATTRIB_AS_CONFIG,
|
|
KBASE_TL_EVENT_LPU_SOFTSTOP,
|
|
KBASE_TL_EVENT_ATOM_SOFTSTOP_EX,
|
|
KBASE_TL_EVENT_ATOM_SOFTSTOP_ISSUE,
|
|
KBASE_TL_EVENT_ATOM_SOFTJOB_START,
|
|
KBASE_TL_EVENT_ATOM_SOFTJOB_END,
|
|
KBASE_TL_ARBITER_GRANTED,
|
|
KBASE_TL_ARBITER_LOST,
|
|
KBASE_TL_ARBITER_STARTED,
|
|
KBASE_TL_ARBITER_STOP_REQUESTED,
|
|
KBASE_TL_ARBITER_STOPPED,
|
|
KBASE_TL_ARBITER_REQUESTED,
|
|
KBASE_JD_GPU_SOFT_RESET,
|
|
KBASE_JD_TILER_HEAP_CHUNK_ALLOC,
|
|
KBASE_TL_JS_SCHED_START,
|
|
KBASE_TL_JS_SCHED_END,
|
|
KBASE_TL_JD_SUBMIT_ATOM_START,
|
|
KBASE_TL_JD_SUBMIT_ATOM_END,
|
|
KBASE_TL_JD_DONE_NO_LOCK_START,
|
|
KBASE_TL_JD_DONE_NO_LOCK_END,
|
|
KBASE_TL_JD_DONE_START,
|
|
KBASE_TL_JD_DONE_END,
|
|
KBASE_TL_JD_ATOM_COMPLETE,
|
|
KBASE_TL_RUN_ATOM_START,
|
|
KBASE_TL_RUN_ATOM_END,
|
|
KBASE_TL_ATTRIB_ATOM_PRIORITY,
|
|
KBASE_TL_ATTRIB_ATOM_STATE,
|
|
KBASE_TL_ATTRIB_ATOM_PRIORITIZED,
|
|
KBASE_TL_ATTRIB_ATOM_JIT,
|
|
KBASE_TL_KBASE_NEW_DEVICE,
|
|
KBASE_TL_KBASE_GPUCMDQUEUE_KICK,
|
|
KBASE_TL_KBASE_DEVICE_PROGRAM_CSG,
|
|
KBASE_TL_KBASE_DEVICE_DEPROGRAM_CSG,
|
|
KBASE_TL_KBASE_DEVICE_HALTING_CSG,
|
|
KBASE_TL_KBASE_DEVICE_SUSPEND_CSG,
|
|
KBASE_TL_KBASE_DEVICE_CSG_IDLE,
|
|
KBASE_TL_KBASE_NEW_CTX,
|
|
KBASE_TL_KBASE_DEL_CTX,
|
|
KBASE_TL_KBASE_CTX_ASSIGN_AS,
|
|
KBASE_TL_KBASE_CTX_UNASSIGN_AS,
|
|
KBASE_TL_KBASE_NEW_KCPUQUEUE,
|
|
KBASE_TL_KBASE_DEL_KCPUQUEUE,
|
|
KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_SIGNAL,
|
|
KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_WAIT,
|
|
KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT,
|
|
KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET,
|
|
KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT_OPERATION,
|
|
KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET_OPERATION,
|
|
KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_MAP_IMPORT,
|
|
KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT,
|
|
KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT_FORCE,
|
|
KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_ALLOC,
|
|
KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_ALLOC,
|
|
KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_ALLOC,
|
|
KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_FREE,
|
|
KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_FREE,
|
|
KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_FREE,
|
|
KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_ERROR_BARRIER,
|
|
KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_GROUP_SUSPEND,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_START,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_END,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_START,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_END,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_START,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_END,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_OPERATION_START,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_OPERATION_END,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET_OPERATION,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_START,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_END,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_START,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_END,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_START,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_END,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_ALLOC_START,
|
|
KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_ALLOC_END,
|
|
KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_ALLOC_END,
|
|
KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_ALLOC_END,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_FREE_START,
|
|
KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_FREE_END,
|
|
KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_FREE_END,
|
|
KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_FREE_END,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_ERROR_BARRIER,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_START,
|
|
KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_END,
|
|
KBASE_TL_KBASE_CSFFW_FW_RELOADING,
|
|
KBASE_TL_KBASE_CSFFW_FW_ENABLING,
|
|
KBASE_TL_KBASE_CSFFW_FW_REQUEST_SLEEP,
|
|
KBASE_TL_KBASE_CSFFW_FW_REQUEST_WAKEUP,
|
|
KBASE_TL_KBASE_CSFFW_FW_REQUEST_HALT,
|
|
KBASE_TL_KBASE_CSFFW_FW_DISABLING,
|
|
KBASE_TL_KBASE_CSFFW_FW_OFF,
|
|
KBASE_TL_KBASE_CSFFW_TLSTREAM_OVERFLOW,
|
|
KBASE_OBJ_MSG_COUNT,
|
|
};
|
|
|
|
#define OBJ_TP_LIST \
|
|
TRACEPOINT_DESC(KBASE_TL_NEW_CTX, \
|
|
"object ctx is created", \
|
|
"@pII", \
|
|
"ctx,ctx_nr,tgid") \
|
|
TRACEPOINT_DESC(KBASE_TL_NEW_GPU, \
|
|
"object gpu is created", \
|
|
"@pII", \
|
|
"gpu,gpu_id,core_count") \
|
|
TRACEPOINT_DESC(KBASE_TL_NEW_LPU, \
|
|
"object lpu is created", \
|
|
"@pII", \
|
|
"lpu,lpu_nr,lpu_fn") \
|
|
TRACEPOINT_DESC(KBASE_TL_NEW_ATOM, \
|
|
"object atom is created", \
|
|
"@pI", \
|
|
"atom,atom_nr") \
|
|
TRACEPOINT_DESC(KBASE_TL_NEW_AS, \
|
|
"address space object is created", \
|
|
"@pI", \
|
|
"address_space,as_nr") \
|
|
TRACEPOINT_DESC(KBASE_TL_DEL_CTX, \
|
|
"context is destroyed", \
|
|
"@p", \
|
|
"ctx") \
|
|
TRACEPOINT_DESC(KBASE_TL_DEL_ATOM, \
|
|
"atom is destroyed", \
|
|
"@p", \
|
|
"atom") \
|
|
TRACEPOINT_DESC(KBASE_TL_LIFELINK_LPU_GPU, \
|
|
"lpu is deleted with gpu", \
|
|
"@pp", \
|
|
"lpu,gpu") \
|
|
TRACEPOINT_DESC(KBASE_TL_LIFELINK_AS_GPU, \
|
|
"address space is deleted with gpu", \
|
|
"@pp", \
|
|
"address_space,gpu") \
|
|
TRACEPOINT_DESC(KBASE_TL_RET_CTX_LPU, \
|
|
"context is retained by lpu", \
|
|
"@pp", \
|
|
"ctx,lpu") \
|
|
TRACEPOINT_DESC(KBASE_TL_RET_ATOM_CTX, \
|
|
"atom is retained by context", \
|
|
"@pp", \
|
|
"atom,ctx") \
|
|
TRACEPOINT_DESC(KBASE_TL_RET_ATOM_LPU, \
|
|
"atom is retained by lpu", \
|
|
"@pps", \
|
|
"atom,lpu,attrib_match_list") \
|
|
TRACEPOINT_DESC(KBASE_TL_NRET_CTX_LPU, \
|
|
"context is released by lpu", \
|
|
"@pp", \
|
|
"ctx,lpu") \
|
|
TRACEPOINT_DESC(KBASE_TL_NRET_ATOM_CTX, \
|
|
"atom is released by context", \
|
|
"@pp", \
|
|
"atom,ctx") \
|
|
TRACEPOINT_DESC(KBASE_TL_NRET_ATOM_LPU, \
|
|
"atom is released by lpu", \
|
|
"@pp", \
|
|
"atom,lpu") \
|
|
TRACEPOINT_DESC(KBASE_TL_RET_AS_CTX, \
|
|
"address space is retained by context", \
|
|
"@pp", \
|
|
"address_space,ctx") \
|
|
TRACEPOINT_DESC(KBASE_TL_NRET_AS_CTX, \
|
|
"address space is released by context", \
|
|
"@pp", \
|
|
"address_space,ctx") \
|
|
TRACEPOINT_DESC(KBASE_TL_RET_ATOM_AS, \
|
|
"atom is retained by address space", \
|
|
"@pp", \
|
|
"atom,address_space") \
|
|
TRACEPOINT_DESC(KBASE_TL_NRET_ATOM_AS, \
|
|
"atom is released by address space", \
|
|
"@pp", \
|
|
"atom,address_space") \
|
|
TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_CONFIG, \
|
|
"atom job slot attributes", \
|
|
"@pLLI", \
|
|
"atom,descriptor,affinity,config") \
|
|
TRACEPOINT_DESC(KBASE_TL_JIT_USEDPAGES, \
|
|
"used pages for jit", \
|
|
"@LI", \
|
|
"used_pages,j_id") \
|
|
TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_JITALLOCINFO, \
|
|
"Information about JIT allocations", \
|
|
"@pLLLIIIII", \
|
|
"atom,va_pgs,com_pgs,extent,j_id,bin_id,max_allocs,jit_flags,usg_id") \
|
|
TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_JITFREEINFO, \
|
|
"Information about JIT frees", \
|
|
"@pI", \
|
|
"atom,j_id") \
|
|
TRACEPOINT_DESC(KBASE_TL_ATTRIB_AS_CONFIG, \
|
|
"address space attributes", \
|
|
"@pLLL", \
|
|
"address_space,transtab,memattr,transcfg") \
|
|
TRACEPOINT_DESC(KBASE_TL_EVENT_LPU_SOFTSTOP, \
|
|
"softstop event on given lpu", \
|
|
"@p", \
|
|
"lpu") \
|
|
TRACEPOINT_DESC(KBASE_TL_EVENT_ATOM_SOFTSTOP_EX, \
|
|
"atom softstopped", \
|
|
"@p", \
|
|
"atom") \
|
|
TRACEPOINT_DESC(KBASE_TL_EVENT_ATOM_SOFTSTOP_ISSUE, \
|
|
"atom softstop issued", \
|
|
"@p", \
|
|
"atom") \
|
|
TRACEPOINT_DESC(KBASE_TL_EVENT_ATOM_SOFTJOB_START, \
|
|
"atom soft job has started", \
|
|
"@p", \
|
|
"atom") \
|
|
TRACEPOINT_DESC(KBASE_TL_EVENT_ATOM_SOFTJOB_END, \
|
|
"atom soft job has completed", \
|
|
"@p", \
|
|
"atom") \
|
|
TRACEPOINT_DESC(KBASE_TL_ARBITER_GRANTED, \
|
|
"Arbiter has granted gpu access", \
|
|
"@p", \
|
|
"gpu") \
|
|
TRACEPOINT_DESC(KBASE_TL_ARBITER_LOST, \
|
|
"Received a gpu lost event from the arbiter", \
|
|
"@p", \
|
|
"gpu") \
|
|
TRACEPOINT_DESC(KBASE_TL_ARBITER_STARTED, \
|
|
"Driver is running again and able to process jobs", \
|
|
"@p", \
|
|
"gpu") \
|
|
TRACEPOINT_DESC(KBASE_TL_ARBITER_STOP_REQUESTED, \
|
|
"Arbiter has requested driver to stop using gpu", \
|
|
"@p", \
|
|
"gpu") \
|
|
TRACEPOINT_DESC(KBASE_TL_ARBITER_STOPPED, \
|
|
"Driver has stopped using gpu", \
|
|
"@p", \
|
|
"gpu") \
|
|
TRACEPOINT_DESC(KBASE_TL_ARBITER_REQUESTED, \
|
|
"Driver has requested the arbiter for gpu access", \
|
|
"@p", \
|
|
"gpu") \
|
|
TRACEPOINT_DESC(KBASE_JD_GPU_SOFT_RESET, \
|
|
"gpu soft reset", \
|
|
"@p", \
|
|
"gpu") \
|
|
TRACEPOINT_DESC(KBASE_JD_TILER_HEAP_CHUNK_ALLOC, \
|
|
"Tiler Heap Chunk Allocation", \
|
|
"@ILL", \
|
|
"ctx_nr,heap_id,chunk_va") \
|
|
TRACEPOINT_DESC(KBASE_TL_JS_SCHED_START, \
|
|
"Scheduling starts", \
|
|
"@I", \
|
|
"dummy") \
|
|
TRACEPOINT_DESC(KBASE_TL_JS_SCHED_END, \
|
|
"Scheduling ends", \
|
|
"@I", \
|
|
"dummy") \
|
|
TRACEPOINT_DESC(KBASE_TL_JD_SUBMIT_ATOM_START, \
|
|
"Submitting an atom starts", \
|
|
"@p", \
|
|
"atom") \
|
|
TRACEPOINT_DESC(KBASE_TL_JD_SUBMIT_ATOM_END, \
|
|
"Submitting an atom ends", \
|
|
"@p", \
|
|
"atom") \
|
|
TRACEPOINT_DESC(KBASE_TL_JD_DONE_NO_LOCK_START, \
|
|
"Within function kbase_jd_done_nolock", \
|
|
"@p", \
|
|
"atom") \
|
|
TRACEPOINT_DESC(KBASE_TL_JD_DONE_NO_LOCK_END, \
|
|
"Within function kbase_jd_done_nolock - end", \
|
|
"@p", \
|
|
"atom") \
|
|
TRACEPOINT_DESC(KBASE_TL_JD_DONE_START, \
|
|
"Start of kbase_jd_done", \
|
|
"@p", \
|
|
"atom") \
|
|
TRACEPOINT_DESC(KBASE_TL_JD_DONE_END, \
|
|
"End of kbase_jd_done", \
|
|
"@p", \
|
|
"atom") \
|
|
TRACEPOINT_DESC(KBASE_TL_JD_ATOM_COMPLETE, \
|
|
"Atom marked complete", \
|
|
"@p", \
|
|
"atom") \
|
|
TRACEPOINT_DESC(KBASE_TL_RUN_ATOM_START, \
|
|
"Running of atom starts", \
|
|
"@pI", \
|
|
"atom,atom_nr") \
|
|
TRACEPOINT_DESC(KBASE_TL_RUN_ATOM_END, \
|
|
"Running of atom ends", \
|
|
"@pI", \
|
|
"atom,atom_nr") \
|
|
TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_PRIORITY, \
|
|
"atom priority", \
|
|
"@pI", \
|
|
"atom,prio") \
|
|
TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_STATE, \
|
|
"atom state", \
|
|
"@pI", \
|
|
"atom,state") \
|
|
TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_PRIORITIZED, \
|
|
"atom caused priority change", \
|
|
"@p", \
|
|
"atom") \
|
|
TRACEPOINT_DESC(KBASE_TL_ATTRIB_ATOM_JIT, \
|
|
"jit done for atom", \
|
|
"@pLLILILLL", \
|
|
"atom,edit_addr,new_addr,jit_flags,mem_flags,j_id,com_pgs,extent,va_pgs") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_NEW_DEVICE, \
|
|
"New KBase Device", \
|
|
"@IIIIIIII", \
|
|
"kbase_device_id,kbase_device_gpu_core_count,kbase_device_max_num_csgs,kbase_device_as_count,kbase_device_sb_entry_count,kbase_device_has_cross_stream_sync,kbase_device_supports_gpu_sleep,kbase_device_has_vd54d34dbb40917c8cea48cca407a8789413be0db") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_GPUCMDQUEUE_KICK, \
|
|
"Kernel receives a request to process new GPU queue instructions", \
|
|
"@IL", \
|
|
"kernel_ctx_id,buffer_gpu_addr") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_DEVICE_PROGRAM_CSG, \
|
|
"CSG is programmed to a slot", \
|
|
"@IIIII", \
|
|
"kbase_device_id,kernel_ctx_id,gpu_cmdq_grp_handle,kbase_device_csg_slot_index,kbase_device_csg_slot_resuming") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_DEVICE_DEPROGRAM_CSG, \
|
|
"CSG is deprogrammed from a slot", \
|
|
"@II", \
|
|
"kbase_device_id,kbase_device_csg_slot_index") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_DEVICE_HALTING_CSG, \
|
|
"CSG is halting", \
|
|
"@III", \
|
|
"kbase_device_id,kbase_device_csg_slot_index,kbase_device_csg_slot_suspending") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_DEVICE_SUSPEND_CSG, \
|
|
"CSG is suspended", \
|
|
"@II", \
|
|
"kbase_device_id,kbase_device_csg_slot_index") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_DEVICE_CSG_IDLE, \
|
|
"KBase device is notified that CSG is idle.", \
|
|
"@II", \
|
|
"kbase_device_id,kbase_device_csg_slot_index") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_NEW_CTX, \
|
|
"New KBase Context", \
|
|
"@II", \
|
|
"kernel_ctx_id,kbase_device_id") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_DEL_CTX, \
|
|
"Delete KBase Context", \
|
|
"@I", \
|
|
"kernel_ctx_id") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_CTX_ASSIGN_AS, \
|
|
"Address Space is assigned to a KBase context", \
|
|
"@II", \
|
|
"kernel_ctx_id,kbase_device_as_index") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_CTX_UNASSIGN_AS, \
|
|
"Address Space is unassigned from a KBase context", \
|
|
"@I", \
|
|
"kernel_ctx_id") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_NEW_KCPUQUEUE, \
|
|
"New KCPU Queue", \
|
|
"@pIII", \
|
|
"kcpu_queue,kcpu_queue_id,kernel_ctx_id,kcpuq_num_pending_cmds") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_DEL_KCPUQUEUE, \
|
|
"Delete KCPU Queue", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_SIGNAL, \
|
|
"KCPU Queue enqueues Signal on Fence", \
|
|
"@pp", \
|
|
"kcpu_queue,fence") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_WAIT, \
|
|
"KCPU Queue enqueues Wait on Fence", \
|
|
"@pp", \
|
|
"kcpu_queue,fence") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT, \
|
|
"KCPU Queue enqueues Wait on Cross Queue Sync Object", \
|
|
"@pLII", \
|
|
"kcpu_queue,cqs_obj_gpu_addr,compare_value,inherit_error") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET, \
|
|
"KCPU Queue enqueues Set on Cross Queue Sync Object", \
|
|
"@pL", \
|
|
"kcpu_queue,cqs_obj_gpu_addr") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT_OPERATION, \
|
|
"KCPU Queue enqueues Wait Operation on Cross Queue Sync Object", \
|
|
"@pLLIII", \
|
|
"kcpu_queue,cqs_obj_gpu_addr,compare_value,condition,data_type,inherit_error") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET_OPERATION, \
|
|
"KCPU Queue enqueues Set Operation on Cross Queue Sync Object", \
|
|
"@pLLII", \
|
|
"kcpu_queue,cqs_obj_gpu_addr,value,operation,data_type") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_MAP_IMPORT, \
|
|
"KCPU Queue enqueues Map Import", \
|
|
"@pL", \
|
|
"kcpu_queue,map_import_buf_gpu_addr") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT, \
|
|
"KCPU Queue enqueues Unmap Import", \
|
|
"@pL", \
|
|
"kcpu_queue,map_import_buf_gpu_addr") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT_FORCE, \
|
|
"KCPU Queue enqueues Unmap Import ignoring reference count", \
|
|
"@pL", \
|
|
"kcpu_queue,map_import_buf_gpu_addr") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_ALLOC, \
|
|
"Begin array of KCPU Queue enqueues JIT Alloc", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_ALLOC, \
|
|
"Array item of KCPU Queue enqueues JIT Alloc", \
|
|
"@pLLLLIIIII", \
|
|
"kcpu_queue,jit_alloc_gpu_alloc_addr_dest,jit_alloc_va_pages,jit_alloc_commit_pages,jit_alloc_extent,jit_alloc_jit_id,jit_alloc_bin_id,jit_alloc_max_allocations,jit_alloc_flags,jit_alloc_usage_id") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_ALLOC, \
|
|
"End array of KCPU Queue enqueues JIT Alloc", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_FREE, \
|
|
"Begin array of KCPU Queue enqueues JIT Free", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_FREE, \
|
|
"Array item of KCPU Queue enqueues JIT Free", \
|
|
"@pI", \
|
|
"kcpu_queue,jit_alloc_jit_id") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_FREE, \
|
|
"End array of KCPU Queue enqueues JIT Free", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_ERROR_BARRIER, \
|
|
"KCPU Queue enqueues Error Barrier", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_GROUP_SUSPEND, \
|
|
"KCPU Queue enqueues Group Suspend", \
|
|
"@ppI", \
|
|
"kcpu_queue,group_suspend_buf,gpu_cmdq_grp_handle") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_START, \
|
|
"KCPU Queue starts a Signal on Fence", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_END, \
|
|
"KCPU Queue ends a Signal on Fence", \
|
|
"@pI", \
|
|
"kcpu_queue,execute_error") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_START, \
|
|
"KCPU Queue starts a Wait on Fence", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_END, \
|
|
"KCPU Queue ends a Wait on Fence", \
|
|
"@pI", \
|
|
"kcpu_queue,execute_error") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_START, \
|
|
"KCPU Queue starts a Wait on Cross Queue Sync Object", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_END, \
|
|
"KCPU Queue ends a Wait on Cross Queue Sync Object", \
|
|
"@pI", \
|
|
"kcpu_queue,execute_error") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET, \
|
|
"KCPU Queue executes a Set on Cross Queue Sync Object", \
|
|
"@pI", \
|
|
"kcpu_queue,execute_error") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_OPERATION_START, \
|
|
"KCPU Queue starts a Wait Operation on Cross Queue Sync Object", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_OPERATION_END, \
|
|
"KCPU Queue ends a Wait Operation on Cross Queue Sync Object", \
|
|
"@pI", \
|
|
"kcpu_queue,execute_error") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET_OPERATION, \
|
|
"KCPU Queue executes a Set Operation on Cross Queue Sync Object", \
|
|
"@pI", \
|
|
"kcpu_queue,execute_error") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_START, \
|
|
"KCPU Queue starts a Map Import", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_END, \
|
|
"KCPU Queue ends a Map Import", \
|
|
"@pI", \
|
|
"kcpu_queue,execute_error") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_START, \
|
|
"KCPU Queue starts an Unmap Import", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_END, \
|
|
"KCPU Queue ends an Unmap Import", \
|
|
"@pI", \
|
|
"kcpu_queue,execute_error") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_START, \
|
|
"KCPU Queue starts an Unmap Import ignoring reference count", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_END, \
|
|
"KCPU Queue ends an Unmap Import ignoring reference count", \
|
|
"@pI", \
|
|
"kcpu_queue,execute_error") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_ALLOC_START, \
|
|
"KCPU Queue starts an array of JIT Allocs", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_ALLOC_END, \
|
|
"Begin array of KCPU Queue ends an array of JIT Allocs", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_ALLOC_END, \
|
|
"Array item of KCPU Queue ends an array of JIT Allocs", \
|
|
"@pILL", \
|
|
"kcpu_queue,execute_error,jit_alloc_gpu_alloc_addr,jit_alloc_mmu_flags") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_ALLOC_END, \
|
|
"End array of KCPU Queue ends an array of JIT Allocs", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_FREE_START, \
|
|
"KCPU Queue starts an array of JIT Frees", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_FREE_END, \
|
|
"Begin array of KCPU Queue ends an array of JIT Frees", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_FREE_END, \
|
|
"Array item of KCPU Queue ends an array of JIT Frees", \
|
|
"@pIL", \
|
|
"kcpu_queue,execute_error,jit_free_pages_used") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_FREE_END, \
|
|
"End array of KCPU Queue ends an array of JIT Frees", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_ERROR_BARRIER, \
|
|
"KCPU Queue executes an Error Barrier", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_START, \
|
|
"KCPU Queue starts a group suspend", \
|
|
"@p", \
|
|
"kcpu_queue") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_END, \
|
|
"KCPU Queue ends a group suspend", \
|
|
"@pI", \
|
|
"kcpu_queue,execute_error") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_RELOADING, \
|
|
"CSF FW is being reloaded", \
|
|
"@L", \
|
|
"csffw_cycle") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_ENABLING, \
|
|
"CSF FW is being enabled", \
|
|
"@L", \
|
|
"csffw_cycle") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_REQUEST_SLEEP, \
|
|
"CSF FW sleep is requested", \
|
|
"@L", \
|
|
"csffw_cycle") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_REQUEST_WAKEUP, \
|
|
"CSF FW wake up is requested", \
|
|
"@L", \
|
|
"csffw_cycle") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_REQUEST_HALT, \
|
|
"CSF FW halt is requested", \
|
|
"@L", \
|
|
"csffw_cycle") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_DISABLING, \
|
|
"CSF FW is being disabled", \
|
|
"@L", \
|
|
"csffw_cycle") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_FW_OFF, \
|
|
"CSF FW is off", \
|
|
"@L", \
|
|
"csffw_cycle") \
|
|
TRACEPOINT_DESC(KBASE_TL_KBASE_CSFFW_TLSTREAM_OVERFLOW, \
|
|
"An overflow has happened with the CSFFW Timeline stream", \
|
|
"@LL", \
|
|
"csffw_timestamp,csffw_cycle")
|
|
|
|
#define MIPE_HEADER_BLOB_VAR_NAME __obj_desc_header
|
|
#define MIPE_HEADER_STREAM_ID TL_STREAM_ID_KERNEL
|
|
#define MIPE_HEADER_PKT_CLASS TL_PACKET_CLASS_OBJ
|
|
#define MIPE_HEADER_TRACEPOINT_LIST OBJ_TP_LIST
|
|
#define MIPE_HEADER_TRACEPOINT_LIST_SIZE KBASE_OBJ_MSG_COUNT
|
|
|
|
#include "mali_kbase_mipe_gen_header.h"
|
|
|
|
const char *obj_desc_header = (const char *) &__obj_desc_header;
|
|
const size_t obj_desc_header_size = sizeof(__obj_desc_header);
|
|
|
|
/* Message ids of trace events that are recorded in the aux stream. */
|
|
enum tl_msg_id_aux {
|
|
KBASE_AUX_PM_STATE,
|
|
KBASE_AUX_PAGEFAULT,
|
|
KBASE_AUX_PAGESALLOC,
|
|
KBASE_AUX_DEVFREQ_TARGET,
|
|
KBASE_AUX_JIT_STATS,
|
|
KBASE_AUX_TILER_HEAP_STATS,
|
|
KBASE_AUX_EVENT_JOB_SLOT,
|
|
KBASE_AUX_PROTECTED_ENTER_START,
|
|
KBASE_AUX_PROTECTED_ENTER_END,
|
|
KBASE_AUX_MMU_COMMAND,
|
|
KBASE_AUX_PROTECTED_LEAVE_START,
|
|
KBASE_AUX_PROTECTED_LEAVE_END,
|
|
KBASE_AUX_MSG_COUNT,
|
|
};
|
|
|
|
#define AUX_TP_LIST \
|
|
TRACEPOINT_DESC(KBASE_AUX_PM_STATE, \
|
|
"PM state", \
|
|
"@IL", \
|
|
"core_type,core_state_bitset") \
|
|
TRACEPOINT_DESC(KBASE_AUX_PAGEFAULT, \
|
|
"Page fault", \
|
|
"@IIL", \
|
|
"ctx_nr,as_nr,page_cnt_change") \
|
|
TRACEPOINT_DESC(KBASE_AUX_PAGESALLOC, \
|
|
"Total alloc pages change", \
|
|
"@IL", \
|
|
"ctx_nr,page_cnt") \
|
|
TRACEPOINT_DESC(KBASE_AUX_DEVFREQ_TARGET, \
|
|
"New device frequency target", \
|
|
"@L", \
|
|
"target_freq") \
|
|
TRACEPOINT_DESC(KBASE_AUX_JIT_STATS, \
|
|
"per-bin JIT statistics", \
|
|
"@IIIIII", \
|
|
"ctx_nr,bid,max_allocs,allocs,va_pages,ph_pages") \
|
|
TRACEPOINT_DESC(KBASE_AUX_TILER_HEAP_STATS, \
|
|
"Tiler Heap statistics", \
|
|
"@ILIIIIIII", \
|
|
"ctx_nr,heap_id,va_pages,ph_pages,max_chunks,chunk_size,chunk_count,target_in_flight,nr_in_flight") \
|
|
TRACEPOINT_DESC(KBASE_AUX_EVENT_JOB_SLOT, \
|
|
"event on a given job slot", \
|
|
"@pIII", \
|
|
"ctx,slot_nr,atom_nr,event") \
|
|
TRACEPOINT_DESC(KBASE_AUX_PROTECTED_ENTER_START, \
|
|
"enter protected mode start", \
|
|
"@p", \
|
|
"gpu") \
|
|
TRACEPOINT_DESC(KBASE_AUX_PROTECTED_ENTER_END, \
|
|
"enter protected mode end", \
|
|
"@p", \
|
|
"gpu") \
|
|
TRACEPOINT_DESC(KBASE_AUX_MMU_COMMAND, \
|
|
"mmu commands with synchronicity info", \
|
|
"@IIILI", \
|
|
"kernel_ctx_id,mmu_cmd_id,mmu_synchronicity,mmu_lock_addr,mmu_lock_page_num") \
|
|
TRACEPOINT_DESC(KBASE_AUX_PROTECTED_LEAVE_START, \
|
|
"leave protected mode start", \
|
|
"@p", \
|
|
"gpu") \
|
|
TRACEPOINT_DESC(KBASE_AUX_PROTECTED_LEAVE_END, \
|
|
"leave protected mode end", \
|
|
"@p", \
|
|
"gpu")
|
|
|
|
#define MIPE_HEADER_BLOB_VAR_NAME __aux_desc_header
|
|
#define MIPE_HEADER_STREAM_ID TL_STREAM_ID_KERNEL
|
|
#define MIPE_HEADER_PKT_CLASS TL_PACKET_CLASS_AUX
|
|
#define MIPE_HEADER_TRACEPOINT_LIST AUX_TP_LIST
|
|
#define MIPE_HEADER_TRACEPOINT_LIST_SIZE KBASE_AUX_MSG_COUNT
|
|
|
|
#include "mali_kbase_mipe_gen_header.h"
|
|
|
|
const char *aux_desc_header = (const char *) &__aux_desc_header;
|
|
const size_t aux_desc_header_size = sizeof(__aux_desc_header);
|
|
|
|
void __kbase_tlstream_tl_new_ctx(
|
|
struct kbase_tlstream *stream,
|
|
const void *ctx,
|
|
u32 ctx_nr,
|
|
u32 tgid
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_NEW_CTX;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(ctx)
|
|
+ sizeof(ctx_nr)
|
|
+ sizeof(tgid)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx, sizeof(ctx));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx_nr, sizeof(ctx_nr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &tgid, sizeof(tgid));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_new_gpu(
|
|
struct kbase_tlstream *stream,
|
|
const void *gpu,
|
|
u32 gpu_id,
|
|
u32 core_count
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_NEW_GPU;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(gpu)
|
|
+ sizeof(gpu_id)
|
|
+ sizeof(core_count)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu, sizeof(gpu));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu_id, sizeof(gpu_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &core_count, sizeof(core_count));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_new_lpu(
|
|
struct kbase_tlstream *stream,
|
|
const void *lpu,
|
|
u32 lpu_nr,
|
|
u32 lpu_fn
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_NEW_LPU;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(lpu)
|
|
+ sizeof(lpu_nr)
|
|
+ sizeof(lpu_fn)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &lpu, sizeof(lpu));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &lpu_nr, sizeof(lpu_nr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &lpu_fn, sizeof(lpu_fn));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_new_atom(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
u32 atom_nr
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_NEW_ATOM;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(atom_nr)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom_nr, sizeof(atom_nr));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_new_as(
|
|
struct kbase_tlstream *stream,
|
|
const void *address_space,
|
|
u32 as_nr
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_NEW_AS;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(address_space)
|
|
+ sizeof(as_nr)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &address_space, sizeof(address_space));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &as_nr, sizeof(as_nr));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_del_ctx(
|
|
struct kbase_tlstream *stream,
|
|
const void *ctx
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_DEL_CTX;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(ctx)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx, sizeof(ctx));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_del_atom(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_DEL_ATOM;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_lifelink_lpu_gpu(
|
|
struct kbase_tlstream *stream,
|
|
const void *lpu,
|
|
const void *gpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_LIFELINK_LPU_GPU;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(lpu)
|
|
+ sizeof(gpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &lpu, sizeof(lpu));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu, sizeof(gpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_lifelink_as_gpu(
|
|
struct kbase_tlstream *stream,
|
|
const void *address_space,
|
|
const void *gpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_LIFELINK_AS_GPU;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(address_space)
|
|
+ sizeof(gpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &address_space, sizeof(address_space));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu, sizeof(gpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_ret_ctx_lpu(
|
|
struct kbase_tlstream *stream,
|
|
const void *ctx,
|
|
const void *lpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_RET_CTX_LPU;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(ctx)
|
|
+ sizeof(lpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx, sizeof(ctx));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &lpu, sizeof(lpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_ret_atom_ctx(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
const void *ctx
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_RET_ATOM_CTX;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(ctx)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx, sizeof(ctx));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_ret_atom_lpu(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
const void *lpu,
|
|
const char *attrib_match_list
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_RET_ATOM_LPU;
|
|
const size_t s2 = sizeof(u32) + sizeof(char)
|
|
+ strnlen(attrib_match_list, STRLEN_MAX);
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(lpu)
|
|
+ s2
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &lpu, sizeof(lpu));
|
|
pos = kbasep_serialize_string(buffer,
|
|
pos, attrib_match_list, s2);
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_nret_ctx_lpu(
|
|
struct kbase_tlstream *stream,
|
|
const void *ctx,
|
|
const void *lpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_NRET_CTX_LPU;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(ctx)
|
|
+ sizeof(lpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx, sizeof(ctx));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &lpu, sizeof(lpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_nret_atom_ctx(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
const void *ctx
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_NRET_ATOM_CTX;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(ctx)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx, sizeof(ctx));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_nret_atom_lpu(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
const void *lpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_NRET_ATOM_LPU;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(lpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &lpu, sizeof(lpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_ret_as_ctx(
|
|
struct kbase_tlstream *stream,
|
|
const void *address_space,
|
|
const void *ctx
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_RET_AS_CTX;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(address_space)
|
|
+ sizeof(ctx)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &address_space, sizeof(address_space));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx, sizeof(ctx));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_nret_as_ctx(
|
|
struct kbase_tlstream *stream,
|
|
const void *address_space,
|
|
const void *ctx
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_NRET_AS_CTX;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(address_space)
|
|
+ sizeof(ctx)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &address_space, sizeof(address_space));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx, sizeof(ctx));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_ret_atom_as(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
const void *address_space
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_RET_ATOM_AS;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(address_space)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &address_space, sizeof(address_space));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_nret_atom_as(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
const void *address_space
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_NRET_ATOM_AS;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(address_space)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &address_space, sizeof(address_space));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_attrib_atom_config(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
u64 descriptor,
|
|
u64 affinity,
|
|
u32 config
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_ATTRIB_ATOM_CONFIG;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(descriptor)
|
|
+ sizeof(affinity)
|
|
+ sizeof(config)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &descriptor, sizeof(descriptor));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &affinity, sizeof(affinity));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &config, sizeof(config));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_jit_usedpages(
|
|
struct kbase_tlstream *stream,
|
|
u64 used_pages,
|
|
u32 j_id
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_JIT_USEDPAGES;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(used_pages)
|
|
+ sizeof(j_id)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &used_pages, sizeof(used_pages));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &j_id, sizeof(j_id));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_attrib_atom_jitallocinfo(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
u64 va_pgs,
|
|
u64 com_pgs,
|
|
u64 extent,
|
|
u32 j_id,
|
|
u32 bin_id,
|
|
u32 max_allocs,
|
|
u32 jit_flags,
|
|
u32 usg_id
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_ATTRIB_ATOM_JITALLOCINFO;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(va_pgs)
|
|
+ sizeof(com_pgs)
|
|
+ sizeof(extent)
|
|
+ sizeof(j_id)
|
|
+ sizeof(bin_id)
|
|
+ sizeof(max_allocs)
|
|
+ sizeof(jit_flags)
|
|
+ sizeof(usg_id)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &va_pgs, sizeof(va_pgs));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &com_pgs, sizeof(com_pgs));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &extent, sizeof(extent));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &j_id, sizeof(j_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &bin_id, sizeof(bin_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &max_allocs, sizeof(max_allocs));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_flags, sizeof(jit_flags));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &usg_id, sizeof(usg_id));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_attrib_atom_jitfreeinfo(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
u32 j_id
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_ATTRIB_ATOM_JITFREEINFO;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(j_id)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &j_id, sizeof(j_id));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_attrib_as_config(
|
|
struct kbase_tlstream *stream,
|
|
const void *address_space,
|
|
u64 transtab,
|
|
u64 memattr,
|
|
u64 transcfg
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_ATTRIB_AS_CONFIG;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(address_space)
|
|
+ sizeof(transtab)
|
|
+ sizeof(memattr)
|
|
+ sizeof(transcfg)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &address_space, sizeof(address_space));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &transtab, sizeof(transtab));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &memattr, sizeof(memattr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &transcfg, sizeof(transcfg));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_event_lpu_softstop(
|
|
struct kbase_tlstream *stream,
|
|
const void *lpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_EVENT_LPU_SOFTSTOP;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(lpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &lpu, sizeof(lpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_event_atom_softstop_ex(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_EVENT_ATOM_SOFTSTOP_EX;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_event_atom_softstop_issue(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_EVENT_ATOM_SOFTSTOP_ISSUE;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_event_atom_softjob_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_EVENT_ATOM_SOFTJOB_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_event_atom_softjob_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_EVENT_ATOM_SOFTJOB_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_arbiter_granted(
|
|
struct kbase_tlstream *stream,
|
|
const void *gpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_ARBITER_GRANTED;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(gpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu, sizeof(gpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_arbiter_lost(
|
|
struct kbase_tlstream *stream,
|
|
const void *gpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_ARBITER_LOST;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(gpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu, sizeof(gpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_arbiter_started(
|
|
struct kbase_tlstream *stream,
|
|
const void *gpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_ARBITER_STARTED;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(gpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu, sizeof(gpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_arbiter_stop_requested(
|
|
struct kbase_tlstream *stream,
|
|
const void *gpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_ARBITER_STOP_REQUESTED;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(gpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu, sizeof(gpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_arbiter_stopped(
|
|
struct kbase_tlstream *stream,
|
|
const void *gpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_ARBITER_STOPPED;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(gpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu, sizeof(gpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_arbiter_requested(
|
|
struct kbase_tlstream *stream,
|
|
const void *gpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_ARBITER_REQUESTED;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(gpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu, sizeof(gpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_jd_gpu_soft_reset(
|
|
struct kbase_tlstream *stream,
|
|
const void *gpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_JD_GPU_SOFT_RESET;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(gpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu, sizeof(gpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_jd_tiler_heap_chunk_alloc(
|
|
struct kbase_tlstream *stream,
|
|
u32 ctx_nr,
|
|
u64 heap_id,
|
|
u64 chunk_va
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_JD_TILER_HEAP_CHUNK_ALLOC;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(ctx_nr)
|
|
+ sizeof(heap_id)
|
|
+ sizeof(chunk_va)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx_nr, sizeof(ctx_nr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &heap_id, sizeof(heap_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &chunk_va, sizeof(chunk_va));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_js_sched_start(
|
|
struct kbase_tlstream *stream,
|
|
u32 dummy
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_JS_SCHED_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(dummy)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &dummy, sizeof(dummy));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_js_sched_end(
|
|
struct kbase_tlstream *stream,
|
|
u32 dummy
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_JS_SCHED_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(dummy)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &dummy, sizeof(dummy));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_jd_submit_atom_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_JD_SUBMIT_ATOM_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_jd_submit_atom_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_JD_SUBMIT_ATOM_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_jd_done_no_lock_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_JD_DONE_NO_LOCK_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_jd_done_no_lock_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_JD_DONE_NO_LOCK_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_jd_done_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_JD_DONE_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_jd_done_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_JD_DONE_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_jd_atom_complete(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_JD_ATOM_COMPLETE;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_run_atom_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
u32 atom_nr
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_RUN_ATOM_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(atom_nr)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom_nr, sizeof(atom_nr));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_run_atom_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
u32 atom_nr
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_RUN_ATOM_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(atom_nr)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom_nr, sizeof(atom_nr));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_attrib_atom_priority(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
u32 prio
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_ATTRIB_ATOM_PRIORITY;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(prio)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &prio, sizeof(prio));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_attrib_atom_state(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
u32 state
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_ATTRIB_ATOM_STATE;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(state)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &state, sizeof(state));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_attrib_atom_prioritized(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_ATTRIB_ATOM_PRIORITIZED;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_attrib_atom_jit(
|
|
struct kbase_tlstream *stream,
|
|
const void *atom,
|
|
u64 edit_addr,
|
|
u64 new_addr,
|
|
u32 jit_flags,
|
|
u64 mem_flags,
|
|
u32 j_id,
|
|
u64 com_pgs,
|
|
u64 extent,
|
|
u64 va_pgs
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_ATTRIB_ATOM_JIT;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(atom)
|
|
+ sizeof(edit_addr)
|
|
+ sizeof(new_addr)
|
|
+ sizeof(jit_flags)
|
|
+ sizeof(mem_flags)
|
|
+ sizeof(j_id)
|
|
+ sizeof(com_pgs)
|
|
+ sizeof(extent)
|
|
+ sizeof(va_pgs)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom, sizeof(atom));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &edit_addr, sizeof(edit_addr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &new_addr, sizeof(new_addr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_flags, sizeof(jit_flags));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &mem_flags, sizeof(mem_flags));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &j_id, sizeof(j_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &com_pgs, sizeof(com_pgs));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &extent, sizeof(extent));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &va_pgs, sizeof(va_pgs));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_new_device(
|
|
struct kbase_tlstream *stream,
|
|
u32 kbase_device_id,
|
|
u32 kbase_device_gpu_core_count,
|
|
u32 kbase_device_max_num_csgs,
|
|
u32 kbase_device_as_count,
|
|
u32 kbase_device_sb_entry_count,
|
|
u32 kbase_device_has_cross_stream_sync,
|
|
u32 kbase_device_supports_gpu_sleep,
|
|
u32 kbase_device_has_vd54d34dbb40917c8cea48cca407a8789413be0db
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_NEW_DEVICE;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kbase_device_id)
|
|
+ sizeof(kbase_device_gpu_core_count)
|
|
+ sizeof(kbase_device_max_num_csgs)
|
|
+ sizeof(kbase_device_as_count)
|
|
+ sizeof(kbase_device_sb_entry_count)
|
|
+ sizeof(kbase_device_has_cross_stream_sync)
|
|
+ sizeof(kbase_device_supports_gpu_sleep)
|
|
+ sizeof(kbase_device_has_vd54d34dbb40917c8cea48cca407a8789413be0db)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_id, sizeof(kbase_device_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_gpu_core_count, sizeof(kbase_device_gpu_core_count));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_max_num_csgs, sizeof(kbase_device_max_num_csgs));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_as_count, sizeof(kbase_device_as_count));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_sb_entry_count, sizeof(kbase_device_sb_entry_count));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_has_cross_stream_sync, sizeof(kbase_device_has_cross_stream_sync));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_supports_gpu_sleep, sizeof(kbase_device_supports_gpu_sleep));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_has_vd54d34dbb40917c8cea48cca407a8789413be0db, sizeof(kbase_device_has_vd54d34dbb40917c8cea48cca407a8789413be0db));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_gpucmdqueue_kick(
|
|
struct kbase_tlstream *stream,
|
|
u32 kernel_ctx_id,
|
|
u64 buffer_gpu_addr
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_GPUCMDQUEUE_KICK;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kernel_ctx_id)
|
|
+ sizeof(buffer_gpu_addr)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &buffer_gpu_addr, sizeof(buffer_gpu_addr));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_device_program_csg(
|
|
struct kbase_tlstream *stream,
|
|
u32 kbase_device_id,
|
|
u32 kernel_ctx_id,
|
|
u32 gpu_cmdq_grp_handle,
|
|
u32 kbase_device_csg_slot_index,
|
|
u32 kbase_device_csg_slot_resuming
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_DEVICE_PROGRAM_CSG;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kbase_device_id)
|
|
+ sizeof(kernel_ctx_id)
|
|
+ sizeof(gpu_cmdq_grp_handle)
|
|
+ sizeof(kbase_device_csg_slot_index)
|
|
+ sizeof(kbase_device_csg_slot_resuming)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_id, sizeof(kbase_device_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu_cmdq_grp_handle, sizeof(gpu_cmdq_grp_handle));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_csg_slot_index, sizeof(kbase_device_csg_slot_index));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_csg_slot_resuming, sizeof(kbase_device_csg_slot_resuming));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_device_deprogram_csg(
|
|
struct kbase_tlstream *stream,
|
|
u32 kbase_device_id,
|
|
u32 kbase_device_csg_slot_index
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_DEVICE_DEPROGRAM_CSG;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kbase_device_id)
|
|
+ sizeof(kbase_device_csg_slot_index)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_id, sizeof(kbase_device_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_csg_slot_index, sizeof(kbase_device_csg_slot_index));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_device_halting_csg(
|
|
struct kbase_tlstream *stream,
|
|
u32 kbase_device_id,
|
|
u32 kbase_device_csg_slot_index,
|
|
u32 kbase_device_csg_slot_suspending
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_DEVICE_HALTING_CSG;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kbase_device_id)
|
|
+ sizeof(kbase_device_csg_slot_index)
|
|
+ sizeof(kbase_device_csg_slot_suspending)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_id, sizeof(kbase_device_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_csg_slot_index, sizeof(kbase_device_csg_slot_index));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_csg_slot_suspending, sizeof(kbase_device_csg_slot_suspending));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_device_suspend_csg(
|
|
struct kbase_tlstream *stream,
|
|
u32 kbase_device_id,
|
|
u32 kbase_device_csg_slot_index
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_DEVICE_SUSPEND_CSG;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kbase_device_id)
|
|
+ sizeof(kbase_device_csg_slot_index)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_id, sizeof(kbase_device_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_csg_slot_index, sizeof(kbase_device_csg_slot_index));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_device_csg_idle(
|
|
struct kbase_tlstream *stream,
|
|
u32 kbase_device_id,
|
|
u32 kbase_device_csg_slot_index
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_DEVICE_CSG_IDLE;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kbase_device_id)
|
|
+ sizeof(kbase_device_csg_slot_index)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_id, sizeof(kbase_device_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_csg_slot_index, sizeof(kbase_device_csg_slot_index));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_new_ctx(
|
|
struct kbase_tlstream *stream,
|
|
u32 kernel_ctx_id,
|
|
u32 kbase_device_id
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_NEW_CTX;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kernel_ctx_id)
|
|
+ sizeof(kbase_device_id)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_id, sizeof(kbase_device_id));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_del_ctx(
|
|
struct kbase_tlstream *stream,
|
|
u32 kernel_ctx_id
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_DEL_CTX;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kernel_ctx_id)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_ctx_assign_as(
|
|
struct kbase_tlstream *stream,
|
|
u32 kernel_ctx_id,
|
|
u32 kbase_device_as_index
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_CTX_ASSIGN_AS;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kernel_ctx_id)
|
|
+ sizeof(kbase_device_as_index)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kbase_device_as_index, sizeof(kbase_device_as_index));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_ctx_unassign_as(
|
|
struct kbase_tlstream *stream,
|
|
u32 kernel_ctx_id
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_CTX_UNASSIGN_AS;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kernel_ctx_id)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_new_kcpuqueue(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u32 kcpu_queue_id,
|
|
u32 kernel_ctx_id,
|
|
u32 kcpuq_num_pending_cmds
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_NEW_KCPUQUEUE;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(kcpu_queue_id)
|
|
+ sizeof(kernel_ctx_id)
|
|
+ sizeof(kcpuq_num_pending_cmds)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue_id, sizeof(kcpu_queue_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpuq_num_pending_cmds, sizeof(kcpuq_num_pending_cmds));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_del_kcpuqueue(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_DEL_KCPUQUEUE;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_fence_signal(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
const void *fence
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_SIGNAL;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(fence)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &fence, sizeof(fence));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_fence_wait(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
const void *fence
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_FENCE_WAIT;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(fence)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &fence, sizeof(fence));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_cqs_wait(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u64 cqs_obj_gpu_addr,
|
|
u32 compare_value,
|
|
u32 inherit_error
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(cqs_obj_gpu_addr)
|
|
+ sizeof(compare_value)
|
|
+ sizeof(inherit_error)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &cqs_obj_gpu_addr, sizeof(cqs_obj_gpu_addr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &compare_value, sizeof(compare_value));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &inherit_error, sizeof(inherit_error));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_cqs_set(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u64 cqs_obj_gpu_addr
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(cqs_obj_gpu_addr)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &cqs_obj_gpu_addr, sizeof(cqs_obj_gpu_addr));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_cqs_wait_operation(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u64 cqs_obj_gpu_addr,
|
|
u64 compare_value,
|
|
u32 condition,
|
|
u32 data_type,
|
|
u32 inherit_error
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_WAIT_OPERATION;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(cqs_obj_gpu_addr)
|
|
+ sizeof(compare_value)
|
|
+ sizeof(condition)
|
|
+ sizeof(data_type)
|
|
+ sizeof(inherit_error)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &cqs_obj_gpu_addr, sizeof(cqs_obj_gpu_addr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &compare_value, sizeof(compare_value));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &condition, sizeof(condition));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &data_type, sizeof(data_type));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &inherit_error, sizeof(inherit_error));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_cqs_set_operation(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u64 cqs_obj_gpu_addr,
|
|
u64 value,
|
|
u32 operation,
|
|
u32 data_type
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_CQS_SET_OPERATION;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(cqs_obj_gpu_addr)
|
|
+ sizeof(value)
|
|
+ sizeof(operation)
|
|
+ sizeof(data_type)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &cqs_obj_gpu_addr, sizeof(cqs_obj_gpu_addr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &value, sizeof(value));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &operation, sizeof(operation));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &data_type, sizeof(data_type));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_map_import(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u64 map_import_buf_gpu_addr
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_MAP_IMPORT;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(map_import_buf_gpu_addr)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &map_import_buf_gpu_addr, sizeof(map_import_buf_gpu_addr));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_unmap_import(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u64 map_import_buf_gpu_addr
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(map_import_buf_gpu_addr)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &map_import_buf_gpu_addr, sizeof(map_import_buf_gpu_addr));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_unmap_import_force(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u64 map_import_buf_gpu_addr
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_UNMAP_IMPORT_FORCE;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(map_import_buf_gpu_addr)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &map_import_buf_gpu_addr, sizeof(map_import_buf_gpu_addr));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_array_begin_kcpuqueue_enqueue_jit_alloc(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_ALLOC;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_array_item_kcpuqueue_enqueue_jit_alloc(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u64 jit_alloc_gpu_alloc_addr_dest,
|
|
u64 jit_alloc_va_pages,
|
|
u64 jit_alloc_commit_pages,
|
|
u64 jit_alloc_extent,
|
|
u32 jit_alloc_jit_id,
|
|
u32 jit_alloc_bin_id,
|
|
u32 jit_alloc_max_allocations,
|
|
u32 jit_alloc_flags,
|
|
u32 jit_alloc_usage_id
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_ALLOC;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(jit_alloc_gpu_alloc_addr_dest)
|
|
+ sizeof(jit_alloc_va_pages)
|
|
+ sizeof(jit_alloc_commit_pages)
|
|
+ sizeof(jit_alloc_extent)
|
|
+ sizeof(jit_alloc_jit_id)
|
|
+ sizeof(jit_alloc_bin_id)
|
|
+ sizeof(jit_alloc_max_allocations)
|
|
+ sizeof(jit_alloc_flags)
|
|
+ sizeof(jit_alloc_usage_id)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_alloc_gpu_alloc_addr_dest, sizeof(jit_alloc_gpu_alloc_addr_dest));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_alloc_va_pages, sizeof(jit_alloc_va_pages));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_alloc_commit_pages, sizeof(jit_alloc_commit_pages));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_alloc_extent, sizeof(jit_alloc_extent));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_alloc_jit_id, sizeof(jit_alloc_jit_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_alloc_bin_id, sizeof(jit_alloc_bin_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_alloc_max_allocations, sizeof(jit_alloc_max_allocations));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_alloc_flags, sizeof(jit_alloc_flags));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_alloc_usage_id, sizeof(jit_alloc_usage_id));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_array_end_kcpuqueue_enqueue_jit_alloc(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_ALLOC;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_array_begin_kcpuqueue_enqueue_jit_free(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_ENQUEUE_JIT_FREE;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_array_item_kcpuqueue_enqueue_jit_free(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u32 jit_alloc_jit_id
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_ENQUEUE_JIT_FREE;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(jit_alloc_jit_id)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_alloc_jit_id, sizeof(jit_alloc_jit_id));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_array_end_kcpuqueue_enqueue_jit_free(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_ENQUEUE_JIT_FREE;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_error_barrier(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_ERROR_BARRIER;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_enqueue_group_suspend(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
const void *group_suspend_buf,
|
|
u32 gpu_cmdq_grp_handle
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_ENQUEUE_GROUP_SUSPEND;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(group_suspend_buf)
|
|
+ sizeof(gpu_cmdq_grp_handle)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &group_suspend_buf, sizeof(group_suspend_buf));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu_cmdq_grp_handle, sizeof(gpu_cmdq_grp_handle));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_signal_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_signal_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u32 execute_error
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_SIGNAL_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(execute_error)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &execute_error, sizeof(execute_error));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_wait_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_fence_wait_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u32 execute_error
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_FENCE_WAIT_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(execute_error)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &execute_error, sizeof(execute_error));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_wait_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_wait_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u32 execute_error
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(execute_error)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &execute_error, sizeof(execute_error));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_set(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u32 execute_error
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(execute_error)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &execute_error, sizeof(execute_error));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_wait_operation_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_OPERATION_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_wait_operation_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u32 execute_error
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_WAIT_OPERATION_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(execute_error)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &execute_error, sizeof(execute_error));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_cqs_set_operation(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u32 execute_error
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_CQS_SET_OPERATION;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(execute_error)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &execute_error, sizeof(execute_error));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_map_import_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_map_import_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u32 execute_error
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_MAP_IMPORT_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(execute_error)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &execute_error, sizeof(execute_error));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u32 execute_error
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(execute_error)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &execute_error, sizeof(execute_error));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_force_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_unmap_import_force_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u32 execute_error
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_UNMAP_IMPORT_FORCE_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(execute_error)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &execute_error, sizeof(execute_error));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_jit_alloc_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_ALLOC_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_array_begin_kcpuqueue_execute_jit_alloc_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_ALLOC_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_array_item_kcpuqueue_execute_jit_alloc_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u32 execute_error,
|
|
u64 jit_alloc_gpu_alloc_addr,
|
|
u64 jit_alloc_mmu_flags
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_ALLOC_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(execute_error)
|
|
+ sizeof(jit_alloc_gpu_alloc_addr)
|
|
+ sizeof(jit_alloc_mmu_flags)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &execute_error, sizeof(execute_error));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_alloc_gpu_alloc_addr, sizeof(jit_alloc_gpu_alloc_addr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_alloc_mmu_flags, sizeof(jit_alloc_mmu_flags));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_array_end_kcpuqueue_execute_jit_alloc_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_ALLOC_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_jit_free_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_JIT_FREE_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_array_begin_kcpuqueue_execute_jit_free_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_ARRAY_BEGIN_KCPUQUEUE_EXECUTE_JIT_FREE_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_array_item_kcpuqueue_execute_jit_free_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u32 execute_error,
|
|
u64 jit_free_pages_used
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_ARRAY_ITEM_KCPUQUEUE_EXECUTE_JIT_FREE_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(execute_error)
|
|
+ sizeof(jit_free_pages_used)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &execute_error, sizeof(execute_error));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &jit_free_pages_used, sizeof(jit_free_pages_used));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_array_end_kcpuqueue_execute_jit_free_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_ARRAY_END_KCPUQUEUE_EXECUTE_JIT_FREE_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_error_barrier(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_ERROR_BARRIER;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_group_suspend_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_kcpuqueue_execute_group_suspend_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *kcpu_queue,
|
|
u32 execute_error
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_KCPUQUEUE_EXECUTE_GROUP_SUSPEND_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kcpu_queue)
|
|
+ sizeof(execute_error)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kcpu_queue, sizeof(kcpu_queue));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &execute_error, sizeof(execute_error));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_csffw_fw_reloading(
|
|
struct kbase_tlstream *stream,
|
|
u64 csffw_cycle
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_RELOADING;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(csffw_cycle)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &csffw_cycle, sizeof(csffw_cycle));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_csffw_fw_enabling(
|
|
struct kbase_tlstream *stream,
|
|
u64 csffw_cycle
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_ENABLING;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(csffw_cycle)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &csffw_cycle, sizeof(csffw_cycle));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_csffw_fw_request_sleep(
|
|
struct kbase_tlstream *stream,
|
|
u64 csffw_cycle
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_REQUEST_SLEEP;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(csffw_cycle)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &csffw_cycle, sizeof(csffw_cycle));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_csffw_fw_request_wakeup(
|
|
struct kbase_tlstream *stream,
|
|
u64 csffw_cycle
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_REQUEST_WAKEUP;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(csffw_cycle)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &csffw_cycle, sizeof(csffw_cycle));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_csffw_fw_request_halt(
|
|
struct kbase_tlstream *stream,
|
|
u64 csffw_cycle
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_REQUEST_HALT;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(csffw_cycle)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &csffw_cycle, sizeof(csffw_cycle));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_csffw_fw_disabling(
|
|
struct kbase_tlstream *stream,
|
|
u64 csffw_cycle
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_DISABLING;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(csffw_cycle)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &csffw_cycle, sizeof(csffw_cycle));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_csffw_fw_off(
|
|
struct kbase_tlstream *stream,
|
|
u64 csffw_cycle
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_CSFFW_FW_OFF;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(csffw_cycle)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &csffw_cycle, sizeof(csffw_cycle));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_tl_kbase_csffw_tlstream_overflow(
|
|
struct kbase_tlstream *stream,
|
|
u64 csffw_timestamp,
|
|
u64 csffw_cycle
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_TL_KBASE_CSFFW_TLSTREAM_OVERFLOW;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(csffw_timestamp)
|
|
+ sizeof(csffw_cycle)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &csffw_timestamp, sizeof(csffw_timestamp));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &csffw_cycle, sizeof(csffw_cycle));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_aux_pm_state(
|
|
struct kbase_tlstream *stream,
|
|
u32 core_type,
|
|
u64 core_state_bitset
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_AUX_PM_STATE;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(core_type)
|
|
+ sizeof(core_state_bitset)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &core_type, sizeof(core_type));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &core_state_bitset, sizeof(core_state_bitset));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_aux_pagefault(
|
|
struct kbase_tlstream *stream,
|
|
u32 ctx_nr,
|
|
u32 as_nr,
|
|
u64 page_cnt_change
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_AUX_PAGEFAULT;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(ctx_nr)
|
|
+ sizeof(as_nr)
|
|
+ sizeof(page_cnt_change)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx_nr, sizeof(ctx_nr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &as_nr, sizeof(as_nr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &page_cnt_change, sizeof(page_cnt_change));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_aux_pagesalloc(
|
|
struct kbase_tlstream *stream,
|
|
u32 ctx_nr,
|
|
u64 page_cnt
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_AUX_PAGESALLOC;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(ctx_nr)
|
|
+ sizeof(page_cnt)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx_nr, sizeof(ctx_nr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &page_cnt, sizeof(page_cnt));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_aux_devfreq_target(
|
|
struct kbase_tlstream *stream,
|
|
u64 target_freq
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_AUX_DEVFREQ_TARGET;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(target_freq)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &target_freq, sizeof(target_freq));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_aux_jit_stats(
|
|
struct kbase_tlstream *stream,
|
|
u32 ctx_nr,
|
|
u32 bid,
|
|
u32 max_allocs,
|
|
u32 allocs,
|
|
u32 va_pages,
|
|
u32 ph_pages
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_AUX_JIT_STATS;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(ctx_nr)
|
|
+ sizeof(bid)
|
|
+ sizeof(max_allocs)
|
|
+ sizeof(allocs)
|
|
+ sizeof(va_pages)
|
|
+ sizeof(ph_pages)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx_nr, sizeof(ctx_nr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &bid, sizeof(bid));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &max_allocs, sizeof(max_allocs));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &allocs, sizeof(allocs));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &va_pages, sizeof(va_pages));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ph_pages, sizeof(ph_pages));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_aux_tiler_heap_stats(
|
|
struct kbase_tlstream *stream,
|
|
u32 ctx_nr,
|
|
u64 heap_id,
|
|
u32 va_pages,
|
|
u32 ph_pages,
|
|
u32 max_chunks,
|
|
u32 chunk_size,
|
|
u32 chunk_count,
|
|
u32 target_in_flight,
|
|
u32 nr_in_flight
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_AUX_TILER_HEAP_STATS;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(ctx_nr)
|
|
+ sizeof(heap_id)
|
|
+ sizeof(va_pages)
|
|
+ sizeof(ph_pages)
|
|
+ sizeof(max_chunks)
|
|
+ sizeof(chunk_size)
|
|
+ sizeof(chunk_count)
|
|
+ sizeof(target_in_flight)
|
|
+ sizeof(nr_in_flight)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx_nr, sizeof(ctx_nr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &heap_id, sizeof(heap_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &va_pages, sizeof(va_pages));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ph_pages, sizeof(ph_pages));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &max_chunks, sizeof(max_chunks));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &chunk_size, sizeof(chunk_size));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &chunk_count, sizeof(chunk_count));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &target_in_flight, sizeof(target_in_flight));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &nr_in_flight, sizeof(nr_in_flight));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_aux_event_job_slot(
|
|
struct kbase_tlstream *stream,
|
|
const void *ctx,
|
|
u32 slot_nr,
|
|
u32 atom_nr,
|
|
u32 event
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_AUX_EVENT_JOB_SLOT;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(ctx)
|
|
+ sizeof(slot_nr)
|
|
+ sizeof(atom_nr)
|
|
+ sizeof(event)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &ctx, sizeof(ctx));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &slot_nr, sizeof(slot_nr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &atom_nr, sizeof(atom_nr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &event, sizeof(event));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_aux_protected_enter_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *gpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_AUX_PROTECTED_ENTER_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(gpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu, sizeof(gpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_aux_protected_enter_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *gpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_AUX_PROTECTED_ENTER_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(gpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu, sizeof(gpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_aux_mmu_command(
|
|
struct kbase_tlstream *stream,
|
|
u32 kernel_ctx_id,
|
|
u32 mmu_cmd_id,
|
|
u32 mmu_synchronicity,
|
|
u64 mmu_lock_addr,
|
|
u32 mmu_lock_page_num
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_AUX_MMU_COMMAND;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(kernel_ctx_id)
|
|
+ sizeof(mmu_cmd_id)
|
|
+ sizeof(mmu_synchronicity)
|
|
+ sizeof(mmu_lock_addr)
|
|
+ sizeof(mmu_lock_page_num)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &kernel_ctx_id, sizeof(kernel_ctx_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &mmu_cmd_id, sizeof(mmu_cmd_id));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &mmu_synchronicity, sizeof(mmu_synchronicity));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &mmu_lock_addr, sizeof(mmu_lock_addr));
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &mmu_lock_page_num, sizeof(mmu_lock_page_num));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_aux_protected_leave_start(
|
|
struct kbase_tlstream *stream,
|
|
const void *gpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_AUX_PROTECTED_LEAVE_START;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(gpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu, sizeof(gpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
void __kbase_tlstream_aux_protected_leave_end(
|
|
struct kbase_tlstream *stream,
|
|
const void *gpu
|
|
)
|
|
{
|
|
const u32 msg_id = KBASE_AUX_PROTECTED_LEAVE_END;
|
|
const size_t msg_size = sizeof(msg_id) + sizeof(u64)
|
|
+ sizeof(gpu)
|
|
;
|
|
char *buffer;
|
|
unsigned long acq_flags;
|
|
size_t pos = 0;
|
|
|
|
buffer = kbase_tlstream_msgbuf_acquire(stream, msg_size, &acq_flags);
|
|
|
|
pos = kbasep_serialize_bytes(buffer, pos, &msg_id, sizeof(msg_id));
|
|
pos = kbasep_serialize_timestamp(buffer, pos);
|
|
pos = kbasep_serialize_bytes(buffer,
|
|
pos, &gpu, sizeof(gpu));
|
|
|
|
kbase_tlstream_msgbuf_release(stream, acq_flags);
|
|
}
|
|
|
|
/* clang-format on */
|