My Project
Classes | Macros | Typedefs | Enumerations
mali_kbase_defs.h File Reference
#include <mali_kbase_config.h>
#include <mali_base_hwconfig_features.h>
#include <mali_base_hwconfig_issues.h>
#include <mali_kbase_mem_lowlevel.h>
#include <mali_kbase_mmu_hw.h>
#include <mali_kbase_mmu_mode.h>
#include <mali_kbase_instr_defs.h>
#include <mali_kbase_pm.h>
#include <linux/atomic.h>
#include <linux/mempool.h>
#include <linux/slab.h>
#include <linux/file.h>
#include "mali_kbase_dma_fence.h"
#include <linux/debugfs.h>
#include <linux/clk.h>
#include <linux/regulator/consumer.h>
#include "mali_kbase_js_defs.h"
#include "mali_kbase_hwaccess_defs.h"
#include "mali_kbase_trace_defs.h"

Go to the source code of this file.

Classes

struct  kbase_jd_atom_dependency
 
struct  kbase_io_access
 
struct  kbase_io_history
 
struct  kbase_ext_res
 
struct  kbase_jd_atom
 
struct  kbase_jd_context
 
struct  kbase_device_info
 
struct  kbase_mmu_setup
 
struct  kbase_as
 
struct  kbasep_mem_device
 
struct  kbase_trace
 
struct  kbasep_kctx_list_element
 
struct  kbase_pm_device_data
 
struct  kbase_protected_ops
 
struct  kbase_mem_pool
 
struct  kbase_device
 
struct  kbase_device::kbase_hwcnt
 
struct  jsctx_queue
 
struct  kbase_context
 
struct  kbase_ctx_ext_res_meta
 
struct  job_descriptor_header
 

Macros

#define KBASE_TRACE_ENABLE   0
 
#define KBASE_TRACE_DUMP_ON_JOB_SLOT_ERROR   1
 
#define ZAP_TIMEOUT   1000
 
#define RESET_TIMEOUT   500
 
#define KBASE_DISABLE_SCHEDULING_SOFT_STOPS   0
 
#define KBASE_DISABLE_SCHEDULING_HARD_STOPS   0
 
#define BASE_JM_MAX_NR_SLOTS   3
 
#define BASE_MAX_NR_AS   16
 
#define MIDGARD_MMU_VA_BITS   48
 
#define MIDGARD_MMU_TOPLEVEL   0
 
#define MIDGARD_MMU_BOTTOMLEVEL   3
 
#define GROWABLE_FLAGS_REQUIRED   (KBASE_REG_PF_GROW | KBASE_REG_GPU_WR)
 
#define KBASEP_AS_NR_INVALID   (-1)
 
#define KBASE_LOCK_REGION_MAX_SIZE   (63)
 
#define KBASE_LOCK_REGION_MIN_SIZE   (11)
 
#define KBASE_TRACE_SIZE_LOG2   8 /* 256 entries */
 
#define KBASE_TRACE_SIZE   (1 << KBASE_TRACE_SIZE_LOG2)
 
#define KBASE_TRACE_MASK   ((1 << KBASE_TRACE_SIZE_LOG2)-1)
 
#define KBASEP_FORCE_REPLAY_DISABLED   0
 
#define KBASEP_FORCE_REPLAY_RANDOM_LIMIT   16
 
#define KBASE_KATOM_FLAG_BEEN_SOFT_STOPPPED   (1<<1)
 
#define KBASE_KATOM_FLAGS_RERUN   (1<<2)
 
#define KBASE_KATOM_FLAGS_JOBCHAIN   (1<<3)
 
#define KBASE_KATOM_FLAG_BEEN_HARD_STOPPED   (1<<4)
 
#define KBASE_KATOM_FLAG_IN_DISJOINT   (1<<5)
 
#define KBASE_KATOM_FLAG_X_DEP_BLOCKED   (1<<7)
 
#define KBASE_KATOM_FLAG_FAIL_BLOCKER   (1<<8)
 
#define KBASE_KATOM_FLAG_JSCTX_IN_X_DEP_LIST   (1<<9)
 
#define KBASE_KATOM_FLAG_HOLDING_CTX_REF   (1<<10)
 
#define KBASE_KATOM_FLAG_PROTECTED   (1<<11)
 
#define KBASE_KATOM_FLAG_JSCTX_IN_TREE   (1<<12)
 
#define JS_COMMAND_SW_CAUSES_DISJOINT   0x100
 
#define JS_COMMAND_SW_BITS   (JS_COMMAND_SW_CAUSES_DISJOINT)
 
#define JS_COMMAND_SOFT_STOP_WITH_SW_DISJOINT   (JS_COMMAND_SW_CAUSES_DISJOINT | JS_COMMAND_SOFT_STOP)
 
#define KBASEP_ATOM_ID_INVALID   BASE_JD_ATOM_COUNT
 
#define KBASE_SERIALIZE_INTRA_SLOT   (1 << 0)
 
#define KBASE_SERIALIZE_INTER_SLOT   (1 << 1)
 
#define KBASE_SERIALIZE_RESET   (1 << 2)
 
#define KBASE_JD_DEP_QUEUE_SIZE   256
 
#define KBASE_TRACE_CODE(X)   KBASE_TRACE_CODE_ ## X
 
#define KBASE_TRACE_CODE_MAKE_CODE(X)   KBASE_TRACE_CODE(X)
 
#define KBASE_TRACE_FLAG_REFCOUNT   (((u8)1) << 0)
 
#define KBASE_TRACE_FLAG_JOBSLOT   (((u8)1) << 1)
 
#define DEVNAME_SIZE   16
 
#define KBASE_API_VERSION(major, minor)
 
#define HR_TIMER_DELAY_MSEC(x)   (ns_to_ktime(((u64)(x))*1000000U))
 
#define HR_TIMER_DELAY_NSEC(x)   (ns_to_ktime(x))
 
#define KBASE_CLEAN_CACHE_MAX_LOOPS   100000
 
#define KBASE_AS_INACTIVE_MAX_LOOPS   100000
 
#define BASEP_JD_REPLAY_LIMIT   15
 

Typedefs

typedef u32 kbase_as_poke_state
 

Enumerations

enum  kbase_atom_gpu_rb_state {
  KBASE_ATOM_GPU_RB_NOT_IN_SLOT_RB, KBASE_ATOM_GPU_RB_WAITING_BLOCKED, KBASE_ATOM_GPU_RB_WAITING_PROTECTED_MODE_PREV, KBASE_ATOM_GPU_RB_WAITING_PROTECTED_MODE_TRANSITION,
  KBASE_ATOM_GPU_RB_WAITING_FOR_CORE_AVAILABLE, KBASE_ATOM_GPU_RB_WAITING_AFFINITY, KBASE_ATOM_GPU_RB_READY, KBASE_ATOM_GPU_RB_SUBMITTED,
  KBASE_ATOM_GPU_RB_RETURN_TO_JS = -1
}
 
enum  kbase_atom_enter_protected_state { KBASE_ATOM_ENTER_PROTECTED_CHECK = 0, KBASE_ATOM_ENTER_PROTECTED_VINSTR, KBASE_ATOM_ENTER_PROTECTED_IDLE_L2, KBASE_ATOM_ENTER_PROTECTED_FINISHED }
 
enum  kbase_atom_exit_protected_state { KBASE_ATOM_EXIT_PROTECTED_CHECK = 0, KBASE_ATOM_EXIT_PROTECTED_IDLE_L2, KBASE_ATOM_EXIT_PROTECTED_RESET, KBASE_ATOM_EXIT_PROTECTED_RESET_WAIT }
 
enum  { KBASE_AS_POKE_STATE_IN_FLIGHT = 1<<0, KBASE_AS_POKE_STATE_KILLING_POKE = 1<<1 }
 
enum  kbase_trace_code {
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY),
  KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_MAKE_CODE =(CORE_CTX_DESTROY), KBASE_TRACE_CODE_COUNT
}
 
enum  kbase_timeline_pm_event {
  KBASEP_TIMELINE_PM_EVENT_FIRST, KBASE_TIMELINE_PM_EVENT_RESERVED_0 = KBASEP_TIMELINE_PM_EVENT_FIRST, KBASE_TIMELINE_PM_EVENT_GPU_STATE_CHANGED, KBASE_TIMELINE_PM_EVENT_GPU_ACTIVE,
  KBASE_TIMELINE_PM_EVENT_GPU_IDLE, KBASE_TIMELINE_PM_EVENT_RESERVED_4, KBASE_TIMELINE_PM_EVENT_RESERVED_5, KBASE_TIMELINE_PM_EVENT_RESERVED_6,
  KBASE_TIMELINE_PM_EVENT_CHANGE_GPU_STATE, KBASEP_TIMELINE_PM_EVENT_LAST = KBASE_TIMELINE_PM_EVENT_CHANGE_GPU_STATE
}
 
enum  kbase_context_flags {
  KCTX_COMPAT = 1U << 0, KCTX_RUNNABLE_REF = 1U << 1, KCTX_ACTIVE = 1U << 2, KCTX_PULLED = 1U << 3,
  KCTX_MEM_PROFILE_INITIALIZED = 1U << 4, KCTX_INFINITE_CACHE = 1U << 5, KCTX_SUBMIT_DISABLED = 1U << 6, KCTX_PRIVILEGED = 1U << 7,
  KCTX_SCHEDULED = 1U << 8, KCTX_DYING = 1U << 9, KCTX_NO_IMPLICIT_SYNC = 1U << 10
}
 
enum  kbase_reg_access_type { REG_READ, REG_WRITE }
 
enum  kbase_share_attr_bits { SHARE_BOTH_BITS = (2ULL << 8), SHARE_INNER_BITS = (3ULL << 8) }
 

Detailed Description

Defintions (types, defines, etcs) common to Kbase. They are placed here to allow the hierarchy of header files to work.

Macro Definition Documentation

◆ BASE_JM_MAX_NR_SLOTS

#define BASE_JM_MAX_NR_SLOTS   3

The maximum number of Job Slots to support in the Hardware.

You can optimize this down if your target devices will only ever support a small number of job slots.

◆ BASE_MAX_NR_AS

#define BASE_MAX_NR_AS   16

The maximum number of Address Spaces to support in the Hardware.

You can optimize this down if your target devices will only ever support a small number of Address Spaces

◆ JS_COMMAND_SOFT_STOP_WITH_SW_DISJOINT

#define JS_COMMAND_SOFT_STOP_WITH_SW_DISJOINT   (JS_COMMAND_SW_CAUSES_DISJOINT | JS_COMMAND_SOFT_STOP)

Soft-stop command that causes a Disjoint event. This of course isn't entirely masked off by JS_COMMAND_MASK

◆ JS_COMMAND_SW_BITS

#define JS_COMMAND_SW_BITS   (JS_COMMAND_SW_CAUSES_DISJOINT)

Bitmask of all SW related flags

◆ JS_COMMAND_SW_CAUSES_DISJOINT

#define JS_COMMAND_SW_CAUSES_DISJOINT   0x100

This command causes a disjoint event

◆ KBASE_API_VERSION

#define KBASE_API_VERSION (   major,
  minor 
)
Value:
((((major) & 0xFFF) << 20) | \
(((minor) & 0xFFF) << 8) | \
((0 & 0xFF) << 0))

◆ KBASE_DISABLE_SCHEDULING_HARD_STOPS

#define KBASE_DISABLE_SCHEDULING_HARD_STOPS   0

Prevent hard-stops from occuring in scheduling situations

This is not due to HW issues, but when scheduling is desired to be more predictable.

Note
Hard stop will still be used for non-scheduling purposes e.g. when terminating a context.
if not in use, define this value to 0 instead of #undef'ing it

◆ KBASE_DISABLE_SCHEDULING_SOFT_STOPS

#define KBASE_DISABLE_SCHEDULING_SOFT_STOPS   0

Prevent soft-stops from occuring in scheduling situations

This is not due to HW issues, but when scheduling is desired to be more predictable.

Therefore, soft stop may still be disabled due to HW issues.

Note
Soft stop will still be used for non-scheduling purposes e.g. when terminating a context.
if not in use, define this value to 0 instead of #undef'ing it

◆ KBASE_KATOM_FLAG_BEEN_HARD_STOPPED

#define KBASE_KATOM_FLAG_BEEN_HARD_STOPPED   (1<<4)

Atom has been previously hard-stopped.

◆ KBASE_KATOM_FLAG_BEEN_SOFT_STOPPPED

#define KBASE_KATOM_FLAG_BEEN_SOFT_STOPPPED   (1<<1)

Atom has been previously soft-stoppped

◆ KBASE_KATOM_FLAG_IN_DISJOINT

#define KBASE_KATOM_FLAG_IN_DISJOINT   (1<<5)

Atom has caused us to enter disjoint state

◆ KBASE_KATOM_FLAGS_RERUN

#define KBASE_KATOM_FLAGS_RERUN   (1<<2)

Atom has been previously retried to execute

◆ KBASE_TRACE_DUMP_ON_JOB_SLOT_ERROR

#define KBASE_TRACE_DUMP_ON_JOB_SLOT_ERROR   1

Dump Job slot trace on error (only active if KBASE_TRACE_ENABLE != 0)

◆ KBASE_TRACE_ENABLE

#define KBASE_TRACE_ENABLE   0

Enable SW tracing when set

◆ KBASEP_AS_NR_INVALID

#define KBASEP_AS_NR_INVALID   (-1)

setting in kbase_context::as_nr that indicates it's invalid

◆ RESET_TIMEOUT

#define RESET_TIMEOUT   500

Number of milliseconds before we time out on a GPU soft/hard reset

◆ ZAP_TIMEOUT

#define ZAP_TIMEOUT   1000

Number of milliseconds before resetting the GPU when a job cannot be "zapped" from the hardware. Note that the time is actually ZAP_TIMEOUT+SOFT_STOP_RESET_TIMEOUT between the context zap starting and the GPU actually being reset to give other contexts time for their jobs to be soft-stopped and removed from the hardware before resetting.

Typedef Documentation

◆ kbase_as_poke_state

typedef u32 kbase_as_poke_state

Poking state for BASE_HW_ISSUE_8316

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Poking state for BASE_HW_ISSUE_8316

◆ kbase_context_flags

enum kbase_context_flags - Flags for kbase contexts

: Set when the context process is a compat process, 32-bit process on a 64-bit kernel.

: Set when context is counted in kbdev->js_data.nr_contexts_runnable. Must hold queue_mutex when accessing.

: Set when the context is active.

: Set when last kick() caused atoms to be pulled from this context.

: Set when the context's memory profile has been initialized.

: Set when infinite cache is to be enabled for new allocations. Existing allocations will not change.

: Set to prevent context from submitting any jobs.

:Set if the context uses an address space and should be kept scheduled in.

: Set when the context is scheduled on the Run Pool. This is only ever updated whilst the jsctx_mutex is held.

: Set when the context process is in the process of being evicted.

: Set when explicit Android fences are in use on this context, to disable use of implicit dma-buf fences. This is used to avoid potential synchronization deadlocks.

All members need to be separate bits. This enum is intended for use in a bitmask where multiple values get OR-ed together.

◆ kbase_timeline_pm_event

Event IDs for the power management framework.

Any of these events might be missed, so they should not be relied upon to find the precise state of the GPU at a particular time in the trace. Overall, we should get a high percentage of these events for statisical purposes, and so a few missing should not be a problem

Enumerator
KBASE_TIMELINE_PM_EVENT_RESERVED_0 

Event reserved for backwards compatibility with 'init' events

KBASE_TIMELINE_PM_EVENT_GPU_STATE_CHANGED 

The power state of the device has changed.

Specifically, the device has reached a desired or available state.

KBASE_TIMELINE_PM_EVENT_GPU_ACTIVE 

The GPU is becoming active.

This event is sent when the first context is about to use the GPU.

KBASE_TIMELINE_PM_EVENT_GPU_IDLE 

The GPU is becoming idle.

This event is sent when the last context has finished using the GPU.

KBASE_TIMELINE_PM_EVENT_RESERVED_4 

Event reserved for backwards compatibility with 'policy_change' events

KBASE_TIMELINE_PM_EVENT_RESERVED_5 

Event reserved for backwards compatibility with 'system_suspend' events

KBASE_TIMELINE_PM_EVENT_RESERVED_6 

Event reserved for backwards compatibility with 'system_resume' events

KBASE_TIMELINE_PM_EVENT_CHANGE_GPU_STATE 

The job scheduler is requesting to power up/down cores.

This event is sent when:

  • powered down cores are needed to complete a job
  • powered up cores are not needed anymore