|
My Project
|
#include "mali_base_mem_priv.h"#include "mali_kbase_profiling_gator_api.h"#include "mali_midg_coherency.h"#include "mali_kbase_gpu_id.h"#include <osu/mali_osu.h>Go to the source code of this file.
Macros | |
| #define | __user |
| #define | BASE_LEGACY_UK6_SUPPORT 1 |
| #define | BASE_LEGACY_UK7_SUPPORT 1 |
| #define | BASE_LEGACY_UK8_SUPPORT 1 |
| #define | BASE_LEGACY_UK9_SUPPORT 1 |
| #define | BASE_LEGACY_UK10_2_SUPPORT 1 |
| #define | BASE_LEGACY_UK10_4_SUPPORT 1 |
| #define | BASE_JD_ATOM_COUNT 256 |
| #define | BASEP_JD_SEM_PER_WORD_LOG2 5 |
| #define | BASEP_JD_SEM_PER_WORD (1 << BASEP_JD_SEM_PER_WORD_LOG2) |
| #define | BASEP_JD_SEM_WORD_NR(x) ((x) >> BASEP_JD_SEM_PER_WORD_LOG2) |
| #define | BASEP_JD_SEM_MASK_IN_WORD(x) (1 << ((x) & (BASEP_JD_SEM_PER_WORD - 1))) |
| #define | BASEP_JD_SEM_ARRAY_SIZE BASEP_JD_SEM_WORD_NR(BASE_JD_ATOM_COUNT) |
| #define | BASE_JD_SOFT_EVENT_SET ((unsigned char)1) |
| #define | BASE_JD_SOFT_EVENT_RESET ((unsigned char)0) |
| #define | BASE_GPU_NUM_TEXTURE_FEATURES_REGISTERS 3 |
| #define | BASE_MAX_COHERENT_GROUPS 16 |
| #define | BASE_DEBUG_FENCE_TIMEOUT 1 |
| #define | BASE_MEM_FLAGS_NR_BITS 19 |
| Number of bits used as flags for base memory management. More... | |
| #define | BASE_MEM_FLAGS_OUTPUT_MASK BASE_MEM_NEED_MMAP |
| #define | BASE_MEM_FLAGS_INPUT_MASK (((1 << BASE_MEM_FLAGS_NR_BITS) - 1) & ~BASE_MEM_FLAGS_OUTPUT_MASK) |
| #define | BASE_MEM_FLAGS_MODIFIABLE |
| #define | BASE_MEM_INVALID_HANDLE ((base_mem_handle) { {BASEP_MEM_INVALID_HANDLE} }) |
| Invalid memory handle. More... | |
| #define | BASE_MEM_WRITE_ALLOC_PAGES_HANDLE ((base_mem_handle) { {BASEP_MEM_WRITE_ALLOC_PAGES_HANDLE} }) |
| Special write-alloc memory handle. More... | |
| #define | BASEP_MEM_INVALID_HANDLE (0ull << 12) |
| #define | BASE_MEM_MMU_DUMP_HANDLE (1ull << 12) |
| #define | BASE_MEM_TRACE_BUFFER_HANDLE (2ull << 12) |
| #define | BASE_MEM_MAP_TRACKING_HANDLE (3ull << 12) |
| #define | BASEP_MEM_WRITE_ALLOC_PAGES_HANDLE (4ull << 12) |
| #define | BASE_MEM_COOKIE_BASE (64ul << 12) |
| #define | BASE_MEM_FIRST_FREE_ADDRESS |
| #define | BASE_MEM_MASK_4GB 0xfffff000UL |
| #define | KBASE_COOKIE_MASK ~1UL /* bit 0 is reserved */ |
| #define | INVALID_PLATFORM_FENCE ((platform_fence_type)-1) |
| #define | BASE_JD_DEP_TYPE_INVALID (0) |
| #define | BASE_JD_DEP_TYPE_DATA (1U << 0) |
| #define | BASE_JD_DEP_TYPE_ORDER (1U << 1) |
| #define | BASE_JD_REQ_DEP ((base_jd_core_req)0) |
| #define | BASE_JD_REQ_FS ((base_jd_core_req)1 << 0) |
| #define | BASE_JD_REQ_CS ((base_jd_core_req)1 << 1) |
| #define | BASE_JD_REQ_T ((base_jd_core_req)1 << 2) |
| #define | BASE_JD_REQ_CF ((base_jd_core_req)1 << 3) |
| #define | BASE_JD_REQ_V ((base_jd_core_req)1 << 4) |
| #define | BASE_JD_REQ_FS_AFBC ((base_jd_core_req)1 << 13) |
| #define | BASE_JD_REQ_EVENT_COALESCE ((base_jd_core_req)1 << 5) |
| #define | BASE_JD_REQ_COHERENT_GROUP ((base_jd_core_req)1 << 6) |
| #define | BASE_JD_REQ_PERMON ((base_jd_core_req)1 << 7) |
| #define | BASE_JD_REQ_EXTERNAL_RESOURCES ((base_jd_core_req)1 << 8) |
| #define | BASE_JD_REQ_SOFT_JOB ((base_jd_core_req)1 << 9) |
| #define | BASE_JD_REQ_SOFT_DUMP_CPU_GPU_TIME (BASE_JD_REQ_SOFT_JOB | 0x1) |
| #define | BASE_JD_REQ_SOFT_FENCE_TRIGGER (BASE_JD_REQ_SOFT_JOB | 0x2) |
| #define | BASE_JD_REQ_SOFT_FENCE_WAIT (BASE_JD_REQ_SOFT_JOB | 0x3) |
| #define | BASE_JD_REQ_SOFT_REPLAY (BASE_JD_REQ_SOFT_JOB | 0x4) |
| #define | BASE_JD_REQ_SOFT_EVENT_WAIT (BASE_JD_REQ_SOFT_JOB | 0x5) |
| #define | BASE_JD_REQ_SOFT_EVENT_SET (BASE_JD_REQ_SOFT_JOB | 0x6) |
| #define | BASE_JD_REQ_SOFT_EVENT_RESET (BASE_JD_REQ_SOFT_JOB | 0x7) |
| #define | BASE_JD_REQ_SOFT_DEBUG_COPY (BASE_JD_REQ_SOFT_JOB | 0x8) |
| #define | BASE_JD_REQ_SOFT_JIT_ALLOC (BASE_JD_REQ_SOFT_JOB | 0x9) |
| #define | BASE_JD_REQ_SOFT_JIT_FREE (BASE_JD_REQ_SOFT_JOB | 0xa) |
| #define | BASE_JD_REQ_SOFT_EXT_RES_MAP (BASE_JD_REQ_SOFT_JOB | 0xb) |
| #define | BASE_JD_REQ_SOFT_EXT_RES_UNMAP (BASE_JD_REQ_SOFT_JOB | 0xc) |
| #define | BASE_JD_REQ_ONLY_COMPUTE ((base_jd_core_req)1 << 10) |
| #define | BASE_JD_REQ_SPECIFIC_COHERENT_GROUP ((base_jd_core_req)1 << 11) |
| #define | BASE_JD_REQ_EVENT_ONLY_ON_FAILURE ((base_jd_core_req)1 << 12) |
| #define | BASEP_JD_REQ_EVENT_NEVER ((base_jd_core_req)1 << 14) |
| #define | BASE_JD_REQ_SKIP_CACHE_START ((base_jd_core_req)1 << 15) |
| #define | BASE_JD_REQ_SKIP_CACHE_END ((base_jd_core_req)1 << 16) |
| #define | BASEP_JD_REQ_RESERVED |
| #define | BASE_JD_REQ_ATOM_TYPE |
| #define | BASE_JD_REQ_SOFT_JOB_TYPE (BASE_JD_REQ_SOFT_JOB | 0x1f) |
| #define | BASE_JD_REQ_SOFT_JOB_OR_DEP(core_req) |
| #define | BASE_JD_PRIO_MEDIUM ((base_jd_prio)0) |
| #define | BASE_JD_PRIO_HIGH ((base_jd_prio)1) |
| #define | BASE_JD_PRIO_LOW ((base_jd_prio)2) |
| #define | BASE_JD_NR_PRIO_LEVELS 3 |
| #define | BASE_EXT_RES_COUNT_MAX 10 |
| #define | BASE_CPU_GPU_CACHE_LINE_PADDING (36) |
| #define | GPU_MAX_JOB_SLOTS 16 |
| #define | BASE_GPU_NUM_TEXTURE_FEATURES_REGISTERS 3 |
| #define | BASE_MAX_COHERENT_GROUPS 16 |
| #define | BASE_CONTEXT_CREATE_ALLOWED_FLAGS |
| #define | BASE_CONTEXT_CREATE_KERNEL_FLAGS ((u32)BASE_CONTEXT_SYSTEM_MONITOR_SUBMIT_DISABLED) |
| #define | BASEP_CONTEXT_FLAG_JOB_DUMP_DISABLED ((u32)(1 << 31)) |
| #define | BASE_JD_REPLAY_F_CHAIN_JOB_LIMIT 256 |
| #define | BASE_TLSTREAM_ENABLE_LATENCY_TRACEPOINTS (1 << 0) |
| #define | BASE_TLSTREAM_JOB_DUMPING_ENABLED (1 << 1) |
| #define | BASE_TLSTREAM_FLAGS_MASK |
Typedefs | |
| typedef struct base_mem_handle | base_mem_handle |
| typedef union kbase_pointer | kbase_pointer |
| typedef u32 | base_mem_alloc_flags |
| Memory allocation, access/hint flags. More... | |
| typedef enum base_mem_import_type | base_mem_import_type |
| typedef enum base_backing_threshold_status | base_backing_threshold_status |
| Result codes of changing the size of the backing store allocated to a tmem region. | |
| typedef struct base_syncset | base_syncset |
| a basic memory operation (sync-set). More... | |
| typedef struct base_import_handle | base_import_handle |
| typedef int | platform_fence_type |
| typedef struct base_stream | base_stream |
| typedef struct base_fence | base_fence |
| typedef struct base_jd_udata | base_jd_udata |
| Per-job data. More... | |
| typedef u8 | base_jd_dep_type |
| Job dependency type. More... | |
| typedef u32 | base_jd_core_req |
| Job chain hardware requirements. More... | |
| typedef u8 | base_jd_prio |
| typedef u8 | base_atom_id |
| typedef struct base_jd_atom_v2 | base_jd_atom_v2 |
| typedef enum base_external_resource_access | base_external_resource_access |
| typedef struct base_external_resource | base_external_resource |
| typedef enum base_jd_event_code | base_jd_event_code |
| Job chain event codes. More... | |
| typedef struct base_jd_event_v2 | base_jd_event_v2 |
| Event reporting structure. More... | |
| typedef struct base_dump_cpu_gpu_counters | base_dump_cpu_gpu_counters |
| Structure for BASE_JD_REQ_SOFT_DUMP_CPU_GPU_COUNTERS jobs. More... | |
| typedef struct mali_base_gpu_props | base_gpu_props |
| typedef struct base_jd_replay_payload | base_jd_replay_payload |
| The payload for a replay job. This must be in GPU memory. | |
| typedef struct base_jd_replay_payload_uk10_2 | base_jd_replay_payload_uk10_2 |
| typedef struct base_jd_replay_jc | base_jd_replay_jc |
| An entry in the linked list of job chains to be replayed. This must be in GPU memory. | |
| typedef struct base_profiling_controls | base_profiling_controls |
Enumerations | |
| enum | { BASE_MEM_PROT_CPU_RD = (1U << 0), BASE_MEM_PROT_CPU_WR = (1U << 1), BASE_MEM_PROT_GPU_RD = (1U << 2), BASE_MEM_PROT_GPU_WR = (1U << 3), BASE_MEM_PROT_GPU_EX = (1U << 4), BASE_MEM_GROW_ON_GPF = (1U << 9), BASE_MEM_COHERENT_SYSTEM = (1U << 10), BASE_MEM_COHERENT_LOCAL = (1U << 11), BASE_MEM_CACHED_CPU = (1U << 12), BASE_MEM_SAME_VA = (1U << 13), BASE_MEM_NEED_MMAP = (1U << 14), BASE_MEM_COHERENT_SYSTEM_REQUIRED = (1U << 15), BASE_MEM_SECURE = (1U << 16), BASE_MEM_DONT_NEED = (1U << 17), BASE_MEM_IMPORT_SHARED = (1U << 18) } |
| Memory allocation, access/hint flags. More... | |
| enum | base_mem_import_type { BASE_MEM_IMPORT_TYPE_INVALID = 0, BASE_MEM_IMPORT_TYPE_UMP = 1, BASE_MEM_IMPORT_TYPE_UMM = 2, BASE_MEM_IMPORT_TYPE_USER_BUFFER = 3 } |
| enum | base_backing_threshold_status { BASE_BACKING_THRESHOLD_OK = 0, BASE_BACKING_THRESHOLD_ERROR_NOT_GROWABLE = -1, BASE_BACKING_THRESHOLD_ERROR_OOM = -2, BASE_BACKING_THRESHOLD_ERROR_INVALID_ARGUMENTS = -4 } |
| Result codes of changing the size of the backing store allocated to a tmem region. More... | |
| enum | kbase_atom_coreref_state { KBASE_ATOM_COREREF_STATE_NO_CORES_REQUESTED, KBASE_ATOM_COREREF_STATE_WAITING_FOR_REQUESTED_CORES, KBASE_ATOM_COREREF_STATE_RECHECK_AFFINITY, KBASE_ATOM_COREREF_STATE_CHECK_AFFINITY_VIOLATIONS, KBASE_ATOM_COREREF_STATE_READY } |
| States to model state machine processed by kbasep_js_job_check_ref_cores(), which handles retaining cores for power management and affinity management. More... | |
| enum | kbase_jd_atom_state { KBASE_JD_ATOM_STATE_UNUSED, KBASE_JD_ATOM_STATE_QUEUED, KBASE_JD_ATOM_STATE_IN_JS, KBASE_JD_ATOM_STATE_HW_COMPLETED, KBASE_JD_ATOM_STATE_COMPLETED } |
| enum | base_external_resource_access { BASE_EXT_RES_ACCESS_SHARED, BASE_EXT_RES_ACCESS_EXCLUSIVE } |
| enum | { BASE_JD_SW_EVENT_KERNEL = (1u << 15), BASE_JD_SW_EVENT = (1u << 14), BASE_JD_SW_EVENT_SUCCESS = (1u << 13), BASE_JD_SW_EVENT_JOB = (0u << 11), BASE_JD_SW_EVENT_BAG = (1u << 11), BASE_JD_SW_EVENT_INFO = (2u << 11), BASE_JD_SW_EVENT_RESERVED = (3u << 11), BASE_JD_SW_EVENT_TYPE_MASK = (3u << 11) } |
| Job chain event code bits Defines the bits used to create base_jd_event_code. More... | |
| enum | base_jd_event_code { BASE_JD_EVENT_RANGE_HW_NONFAULT_START = 0, BASE_JD_EVENT_NOT_STARTED = 0x00, BASE_JD_EVENT_DONE = 0x01, BASE_JD_EVENT_STOPPED = 0x03, BASE_JD_EVENT_TERMINATED = 0x04, BASE_JD_EVENT_ACTIVE = 0x08, BASE_JD_EVENT_RANGE_HW_NONFAULT_END = 0x40, BASE_JD_EVENT_RANGE_HW_FAULT_OR_SW_ERROR_START = 0x40, BASE_JD_EVENT_JOB_CONFIG_FAULT = 0x40, BASE_JD_EVENT_JOB_POWER_FAULT = 0x41, BASE_JD_EVENT_JOB_READ_FAULT = 0x42, BASE_JD_EVENT_JOB_WRITE_FAULT = 0x43, BASE_JD_EVENT_JOB_AFFINITY_FAULT = 0x44, BASE_JD_EVENT_JOB_BUS_FAULT = 0x48, BASE_JD_EVENT_INSTR_INVALID_PC = 0x50, BASE_JD_EVENT_INSTR_INVALID_ENC = 0x51, BASE_JD_EVENT_INSTR_TYPE_MISMATCH = 0x52, BASE_JD_EVENT_INSTR_OPERAND_FAULT = 0x53, BASE_JD_EVENT_INSTR_TLS_FAULT = 0x54, BASE_JD_EVENT_INSTR_BARRIER_FAULT = 0x55, BASE_JD_EVENT_INSTR_ALIGN_FAULT = 0x56, BASE_JD_EVENT_DATA_INVALID_FAULT = 0x58, BASE_JD_EVENT_TILE_RANGE_FAULT = 0x59, BASE_JD_EVENT_STATE_FAULT = 0x5A, BASE_JD_EVENT_OUT_OF_MEMORY = 0x60, BASE_JD_EVENT_UNKNOWN = 0x7F, BASE_JD_EVENT_DELAYED_BUS_FAULT = 0x80, BASE_JD_EVENT_SHAREABILITY_FAULT = 0x88, BASE_JD_EVENT_TRANSLATION_FAULT_LEVEL1 = 0xC1, BASE_JD_EVENT_TRANSLATION_FAULT_LEVEL2 = 0xC2, BASE_JD_EVENT_TRANSLATION_FAULT_LEVEL3 = 0xC3, BASE_JD_EVENT_TRANSLATION_FAULT_LEVEL4 = 0xC4, BASE_JD_EVENT_PERMISSION_FAULT = 0xC8, BASE_JD_EVENT_TRANSTAB_BUS_FAULT_LEVEL1 = 0xD1, BASE_JD_EVENT_TRANSTAB_BUS_FAULT_LEVEL2 = 0xD2, BASE_JD_EVENT_TRANSTAB_BUS_FAULT_LEVEL3 = 0xD3, BASE_JD_EVENT_TRANSTAB_BUS_FAULT_LEVEL4 = 0xD4, BASE_JD_EVENT_ACCESS_FLAG = 0xD8, BASE_JD_EVENT_MEM_GROWTH_FAILED = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_JOB | 0x000, BASE_JD_EVENT_TIMED_OUT = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_JOB | 0x001, BASE_JD_EVENT_JOB_CANCELLED = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_JOB | 0x002, BASE_JD_EVENT_JOB_INVALID = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_JOB | 0x003, BASE_JD_EVENT_PM_EVENT = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_JOB | 0x004, BASE_JD_EVENT_FORCE_REPLAY = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_JOB | 0x005, BASE_JD_EVENT_BAG_INVALID = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_BAG | 0x003, BASE_JD_EVENT_RANGE_HW_FAULT_OR_SW_ERROR_END = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_RESERVED | 0x3FF, BASE_JD_EVENT_RANGE_SW_SUCCESS_START = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_SUCCESS | 0x000, BASE_JD_EVENT_PROGRESS_REPORT = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_SUCCESS | BASE_JD_SW_EVENT_JOB | 0x000, BASE_JD_EVENT_BAG_DONE = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_SUCCESS | BASE_JD_SW_EVENT_BAG | 0x000, BASE_JD_EVENT_DRV_TERMINATED = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_SUCCESS | BASE_JD_SW_EVENT_INFO | 0x000, BASE_JD_EVENT_RANGE_SW_SUCCESS_END = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_SUCCESS | BASE_JD_SW_EVENT_RESERVED | 0x3FF, BASE_JD_EVENT_RANGE_KERNEL_ONLY_START = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_KERNEL | 0x000, BASE_JD_EVENT_REMOVED_FROM_NEXT = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_KERNEL | BASE_JD_SW_EVENT_JOB | 0x000, BASE_JD_EVENT_RANGE_KERNEL_ONLY_END = BASE_JD_SW_EVENT | BASE_JD_SW_EVENT_KERNEL | BASE_JD_SW_EVENT_RESERVED | 0x3FF } |
| Job chain event codes. More... | |
| enum | base_context_create_flags { BASE_CONTEXT_CREATE_FLAG_NONE = 0, BASE_CONTEXT_CCTX_EMBEDDED = (1u << 0), BASE_CONTEXT_SYSTEM_MONITOR_SUBMIT_DISABLED = (1u << 1) } |
Base structures shared with the kernel.
| #define BASE_TLSTREAM_FLAGS_MASK |
| typedef union kbase_pointer kbase_pointer |
32/64-bit neutral way to represent pointers
1.8.13