/device/soc/rockchip/common/vendor/drivers/gpu/arm/bifrost/mmu/backend/ |
H A D | mali_kbase_mmu_jm.c | 57 void kbase_gpu_report_bus_fault_and_kill(struct kbase_context *kctx, struct kbase_as *as, struct kbase_fault *fault) in kbase_gpu_report_bus_fault_and_kill() argument 60 u32 const status = fault->status; in kbase_gpu_report_bus_fault_and_kill() 66 /* terminal fault, print info about the fault */ in kbase_gpu_report_bus_fault_and_kill() 68 "GPU bus fault in AS%d at VA 0x%016llX\n" in kbase_gpu_report_bus_fault_and_kill() 69 "raw fault status: 0x%X\n" in kbase_gpu_report_bus_fault_and_kill() 73 as_no, fault->addr, status, exception_type, kbase_gpu_exception_name(exception_type), exception_data, in kbase_gpu_report_bus_fault_and_kill() 98 struct kbase_fault *fault) in kbase_mmu_report_fault_and_kill() 117 /* decode the fault status */ in kbase_mmu_report_fault_and_kill() 118 exception_type = fault in kbase_mmu_report_fault_and_kill() 97 kbase_mmu_report_fault_and_kill(struct kbase_context *kctx, struct kbase_as *as, const char *reason_str, struct kbase_fault *fault) kbase_mmu_report_fault_and_kill() argument 183 kbase_mmu_interrupt_process(struct kbase_device *kbdev, struct kbase_context *kctx, struct kbase_as *as, struct kbase_fault *fault) kbase_mmu_interrupt_process() argument 298 struct kbase_fault *fault; kbase_mmu_interrupt() local [all...] |
/device/soc/rockchip/common/kernel/drivers/gpu/arm/bifrost/mmu/backend/ |
H A D | mali_kbase_mmu_jm.c | 58 struct kbase_as *as, struct kbase_fault *fault) in kbase_gpu_report_bus_fault_and_kill() 61 u32 const status = fault->status; in kbase_gpu_report_bus_fault_and_kill() 67 /* terminal fault, print info about the fault */ in kbase_gpu_report_bus_fault_and_kill() 69 "GPU bus fault in AS%d at VA 0x%016llX\n" in kbase_gpu_report_bus_fault_and_kill() 70 "raw fault status: 0x%X\n" in kbase_gpu_report_bus_fault_and_kill() 74 as_no, fault->addr, in kbase_gpu_report_bus_fault_and_kill() 105 struct kbase_fault *fault) in kbase_mmu_report_fault_and_kill() 123 /* decode the fault status */ in kbase_mmu_report_fault_and_kill() 124 exception_type = fault in kbase_mmu_report_fault_and_kill() 57 kbase_gpu_report_bus_fault_and_kill(struct kbase_context *kctx, struct kbase_as *as, struct kbase_fault *fault) kbase_gpu_report_bus_fault_and_kill() argument 103 kbase_mmu_report_fault_and_kill(struct kbase_context *kctx, struct kbase_as *as, const char *reason_str, struct kbase_fault *fault) kbase_mmu_report_fault_and_kill() argument 201 kbase_mmu_interrupt_process(struct kbase_device *kbdev, struct kbase_context *kctx, struct kbase_as *as, struct kbase_fault *fault) kbase_mmu_interrupt_process() argument 332 struct kbase_fault *fault; kbase_mmu_interrupt() local [all...] |
H A D | mali_kbase_mmu_csf.c | 60 * submit_work_pagefault() - Submit a work for MMU page fault. 64 * @fault: Data relating to the fault 66 * This function submits a work for reporting the details of MMU fault. 69 struct kbase_fault *fault) in submit_work_pagefault() 82 .status = fault->status, in submit_work_pagefault() 83 .addr = fault->addr, in submit_work_pagefault() 87 * A page fault work item could already be pending for the in submit_work_pagefault() 88 * context's address space, when the page fault occurs for in submit_work_pagefault() 95 "Page fault i in submit_work_pagefault() 68 submit_work_pagefault(struct kbase_device *kbdev, u32 as_nr, struct kbase_fault *fault) submit_work_pagefault() argument 103 kbase_mmu_report_mcu_as_fault_and_reset(struct kbase_device *kbdev, struct kbase_fault *fault) kbase_mmu_report_mcu_as_fault_and_reset() argument 137 kbase_gpu_report_bus_fault_and_kill(struct kbase_context *kctx, struct kbase_as *as, struct kbase_fault *fault) kbase_gpu_report_bus_fault_and_kill() argument 197 kbase_mmu_report_fault_and_kill(struct kbase_context *kctx, struct kbase_as *as, const char *reason_str, struct kbase_fault *fault) kbase_mmu_report_fault_and_kill() argument 277 kbase_mmu_interrupt_process(struct kbase_device *kbdev, struct kbase_context *kctx, struct kbase_as *as, struct kbase_fault *fault) kbase_mmu_interrupt_process() argument 324 struct kbase_fault *fault; kbase_mmu_bus_fault_interrupt() local 375 struct kbase_fault *fault = &as->pf_data; kbase_mmu_interrupt() local 458 struct kbase_fault *fault; kbase_mmu_gpu_fault_worker() local [all...] |
/device/soc/rockchip/common/kernel/drivers/gpu/arm/bifrost/mmu/ |
H A D | mali_kbase_mmu_internal.h | 29 * kbase_mmu_report_mcu_as_fault_and_reset - Report page fault for all 31 * @kbdev: The kbase_device the fault happened on 32 * @fault: Data relating to the fault 35 struct kbase_fault *fault); 38 struct kbase_as *as, struct kbase_fault *fault); 42 struct kbase_fault *fault); 59 * kbase_mmu_page_fault_worker() - Process a page fault. 66 * kbase_mmu_bus_fault_worker() - Process a bus fault.
|
H A D | mali_kbase_mmu.c | 226 * a region on a GPU page fault 229 * @fault_rel_pfn: PFN of the fault relative to the start of the region 232 * where a GPU page fault occurred and the flags in the region. 235 * @fault_rel_pfn, for example to reduce the overall rate of page fault 346 struct kbase_fault *fault; in kbase_gpu_mmu_handle_write_fault() local 353 fault = &faulting_as->pf_data; in kbase_gpu_mmu_handle_write_fault() 354 fault_pfn = fault->addr >> PAGE_SHIFT; in kbase_gpu_mmu_handle_write_fault() 360 fault->addr); in kbase_gpu_mmu_handle_write_fault() 381 u64 page_addr = fault->addr & PAGE_MASK; in kbase_gpu_mmu_handle_write_fault() 419 struct kbase_fault *fault in kbase_gpu_mmu_handle_permission_fault() local 669 struct kbase_fault *fault; kbase_mmu_page_fault_worker() local 2548 struct kbase_fault *fault; kbase_mmu_bus_fault_worker() local [all...] |
/device/soc/rockchip/common/vendor/drivers/gpu/arm/bifrost/mmu/ |
H A D | mali_kbase_mmu_internal.h | 29 * kbase_mmu_report_mcu_as_fault_and_reset - Report page fault for all 31 * @kbdev: The kbase_device the fault happened on 32 * @fault: Data relating to the fault 34 void kbase_mmu_report_mcu_as_fault_and_reset(struct kbase_device *kbdev, struct kbase_fault *fault); 36 void kbase_gpu_report_bus_fault_and_kill(struct kbase_context *kctx, struct kbase_as *as, struct kbase_fault *fault); 39 struct kbase_fault *fault); 55 * kbase_mmu_page_fault_worker() - Process a page fault. 62 * kbase_mmu_bus_fault_worker() - Process a bus fault.
|
H A D | mali_kbase_mmu.c | 117 * a region on a GPU page fault 120 * @fault_rel_pfn: PFN of the fault relative to the start of the region 123 * where a GPU page fault occurred and the flags in the region. 126 * @fault_rel_pfn, for example to reduce the overall rate of page fault 211 struct kbase_fault *fault; in kbase_gpu_mmu_handle_write_fault() local 219 fault = &faulting_as->pf_data; in kbase_gpu_mmu_handle_write_fault() 220 fault_pfn = fault->addr >> PAGE_SHIFT; in kbase_gpu_mmu_handle_write_fault() 225 region = kbase_region_tracker_find_region_enclosing_address(kctx, fault->addr); in kbase_gpu_mmu_handle_write_fault() 243 u64 page_addr = fault->addr & PAGE_MASK; in kbase_gpu_mmu_handle_write_fault() 282 struct kbase_fault *fault in kbase_gpu_mmu_handle_permission_fault() local 523 struct kbase_fault *fault; kbase_mmu_page_fault_worker() local 2048 struct kbase_fault *fault; kbase_mmu_bus_fault_worker() local [all...] |
/device/soc/rockchip/common/kernel/drivers/gpu/arm/bifrost/ |
H A D | mali_linux_trace.h | 87 * mali_page_fault_insert_pages - Reports an MMU page fault 221 * Tracepoint about a successful grow of a region due to a GPU page fault 224 TP_PROTO(struct kbase_va_region *reg, struct kbase_fault *fault, 226 TP_ARGS(reg, fault, new_pages), 236 __entry->fault_addr = fault->addr; 237 __entry->fault_extra_addr = fault->extra_addr; 239 __entry->status = fault->status;
|
H A D | mali_kbase_defs.h | 231 * struct kbase_fault - object containing data relating to a page or bus fault. 233 * @extra_addr: Records the secondary fault address. 234 * @status: Records the fault status as reported by Hw. 235 * @protected_mode: Flag indicating whether the fault occurred in protected mode 293 struct kbase_fault *fault) in kbase_as_has_bus_fault() 295 return (fault == &as->bf_data); in kbase_as_has_bus_fault() 299 struct kbase_fault *fault) in kbase_as_has_page_fault() 301 return (fault == &as->pf_data); in kbase_as_has_page_fault() 310 * on GPU page fault that can be used before the driver 848 * @debugfs_as_read_bitmap: bitmap of address spaces for which the bus or page fault 292 kbase_as_has_bus_fault(struct kbase_as *as, struct kbase_fault *fault) kbase_as_has_bus_fault() argument 298 kbase_as_has_page_fault(struct kbase_as *as, struct kbase_fault *fault) kbase_as_has_page_fault() argument [all...] |
/device/soc/rockchip/common/vendor/drivers/gpu/arm/bifrost/ |
H A D | mali_linux_trace.h | 62 * mali_page_fault_insert_pages - Reports an MMU page fault 152 * Tracepoint about a successful grow of a region due to a GPU page fault 155 mali_mmu_page_fault_grow, TP_PROTO(struct kbase_va_region *reg, struct kbase_fault *fault, size_t new_pages), 156 TP_ARGS(reg, fault, new_pages), 159 TP_fast_assign(__entry->start_addr = ((u64)reg->start_pfn) << PAGE_SHIFT; __entry->fault_addr = fault->addr; 160 __entry->fault_extra_addr = fault->extra_addr; __entry->new_pages = new_pages; 161 __entry->status = fault->status;),
|
H A D | mali_kbase_defs.h | 227 * struct kbase_fault - object containing data relating to a page or bus fault. 229 * @extra_addr: Records the secondary fault address. 230 * @status: Records the fault status as reported by Hw. 231 * @protected_mode: Flag indicating whether the fault occurred in protected mode 273 static inline int kbase_as_has_bus_fault(struct kbase_as *as, struct kbase_fault *fault) in kbase_as_has_bus_fault() argument 275 return (fault == &as->bf_data); in kbase_as_has_bus_fault() 278 static inline int kbase_as_has_page_fault(struct kbase_as *as, struct kbase_fault *fault) in kbase_as_has_page_fault() argument 280 return (fault == &as->pf_data); in kbase_as_has_page_fault() 289 * on GPU page fault that can be used before the driver 783 * @debugfs_as_read_bitmap: bitmap of address spaces for which the bus or page fault [all...] |
H A D | mali_kbase_mem_linux.c | 1043 * shareability fault, as it will see the same in kbase_mem_flags_change() 1688 * NULL as the pages argument which will fault the pages, but not in kbase_mem_from_user_buffer() 2289 /* No update required for CPU mappings, that's done on fault. */ 2489 * not from the fault location (the mmap handler was previously doing 2514 .fault = kbase_cpu_vm_fault}; 2618 * helps avoid segmentation fault issue during vector dumping of 3383 .fault = kbase_csf_user_io_pages_vm_fault}; 3499 .close = kbase_csf_user_reg_vm_close, .fault = kbase_csf_user_reg_vm_fault};
|
/device/soc/rockchip/rk3588/kernel/include/trace/hooks/ |
H A D | fault.h | 3 #define TRACE_SYSTEM fault
|
/device/soc/rockchip/common/vendor/drivers/gpu/arm/bifrost/csf/ |
H A D | mali_kbase_csf.h | 180 * kbase_csf_ctx_handle_fault - Terminate queue groups & notify fault upon 181 * GPU bus fault, MMU page fault or similar. 184 * notifies the event notification thread of the fault. 187 * @fault: Pointer to the fault. 189 void kbase_csf_ctx_handle_fault(struct kbase_context *kctx, struct kbase_fault *fault);
|
/device/soc/rockchip/common/kernel/drivers/gpu/arm/bifrost/csf/ |
H A D | mali_kbase_csf.h | 60 * kbase_csf_ctx_handle_fault - Terminate queue groups & notify fault upon 61 * GPU bus fault, MMU page fault or similar. 64 * @fault: Pointer to the fault. 67 * notifies the event notification thread of the fault. 70 struct kbase_fault *fault);
|
H A D | mali_kbase_csf_firmware_no_mali.c | 460 * handle_internal_firmware_fatal - Handler for CS internal firmware fault. 474 struct kbase_fault fault; in handle_internal_firmware_fatal() local 479 /* Only handle the fault for an active address space. Lock is in handle_internal_firmware_fatal() 494 fault = (struct kbase_fault) { in handle_internal_firmware_fatal() 498 kbase_csf_ctx_handle_fault(kctx, &fault); in handle_internal_firmware_fatal()
|
H A D | mali_kbase_csf.c | 246 * attributes as used inside the CPU page fault handler. in kernel_map_user_io_pages() 1758 struct kbase_fault *fault) in kbase_csf_ctx_handle_fault() 1769 if (WARN_ON(!fault)) in kbase_csf_ctx_handle_fault() 1784 .sideband = fault->addr, in kbase_csf_ctx_handle_fault() 1785 .status = fault->status, in kbase_csf_ctx_handle_fault() 2054 * on address-space fault, the group is pending to be killed. So skip in kbase_queue_oom_event() 2193 * thread of progress timeout fault for the GPU command queue group. 2221 * handle_fault_event - Handler for CS fault. 2223 * @queue: Pointer to queue for which fault event was received. 2227 * Prints meaningful CS fault informatio 1757 kbase_csf_ctx_handle_fault(struct kbase_context *kctx, struct kbase_fault *fault) kbase_csf_ctx_handle_fault() argument [all...] |
H A D | mali_kbase_csf_firmware.c | 1216 * handle_internal_firmware_fatal - Handler for CS internal firmware fault. 1230 struct kbase_fault fault; in handle_internal_firmware_fatal() local 1235 /* Only handle the fault for an active address space. Lock is in handle_internal_firmware_fatal() 1250 fault = (struct kbase_fault) { in handle_internal_firmware_fatal() 1254 kbase_csf_ctx_handle_fault(kctx, &fault); in handle_internal_firmware_fatal()
|
/device/soc/rockchip/common/kernel/drivers/gpu/arm/mali400/ump/linux/ |
H A D | ump_osk_low_level_mem.c | 50 .fault = ump_cpu_page_fault_handler 57 * Page fault for VMA region 70 MSG_ERR(("Page-fault in UMP memory region caused by the CPU\n")); in ump_cpu_page_fault_handler()
|
/device/soc/rockchip/common/vendor/drivers/gpu/arm/mali400/mali/linux/ |
H A D | mali_memory.c | 83 /* check if use page fault to do COW */ in mali_mem_vma_fault() 96 we zap the mapping in cow_modify_range, it will trigger page fault in mali_mem_vma_fault() 120 ("Mali swap memory page fault process failed, address=0x%x\n", address)); in mali_mem_vma_fault() 126 MALI_PRINT_ERROR(("Mali vma fault! It never happen, indicating some logic errors in caller.\n")); in mali_mem_vma_fault() 136 .fault = mali_mem_vma_fault, 233 /* add VM_WRITE for do_page_fault will check this when a write fault */ in mali_mmap() 251 /* For swappable memory, CPU page table will be created by page fault handler. */ in mali_mmap()
|
/device/soc/rockchip/common/sdk_linux/include/linux/mmc/ |
H A D | host.h | 12 #include <linux/fault-inject.h>
|
/device/soc/rockchip/common/kernel/drivers/gpu/arm/mali400/mali/linux/ |
H A D | mali_memory.c | 85 /*check if use page fault to do COW*/ in mali_mem_vma_fault() 98 we zap the mapping in cow_modify_range, it will trigger page fault in mali_mem_vma_fault() 121 MALI_DEBUG_PRINT(2, ("Mali swap memory page fault process failed, address=0x%x\n", address)); in mali_mem_vma_fault() 127 MALI_PRINT_ERROR(("Mali vma fault! It never happen, indicating some logic errors in caller.\n")); in mali_mem_vma_fault() 137 .fault = mali_mem_vma_fault, 234 /* add VM_WRITE for do_page_fault will check this when a write fault */ in mali_mmap() 251 /*For swappable memory, CPU page table will be created by page fault handler. */ in mali_mmap()
|
/device/soc/rockchip/common/sdk_linux/drivers/dma-buf/heaps/ |
H A D | cma_heap.c | 176 .fault = cma_heap_vm_fault,
|
/device/soc/rockchip/common/sdk_linux/drivers/iommu/ |
H A D | iommu.c | 1053 * iommu_register_device_fault_handler() - Register a device fault handler
1055 * @handler: the fault handler
1058 * When an IOMMU fault event is received, this handler gets called with the
1059 * fault event and data as argument. The handler should return 0 on success. If
1060 * the fault is recoverable (IOMMU_FAULT_PAGE_REQ), the consumer should also
1061 * complete the fault by calling iommu_page_response() with one of the following
1064 * - IOMMU_PAGE_RESP_INVALID: terminate the fault
1065 * - IOMMU_PAGE_RESP_FAILURE: terminate the fault and stop reporting
1068 * Return 0 if the fault handler was installed successfully, or an error.
1080 /* Only allow one fault handle in iommu_register_device_fault_handler() [all...] |
/device/soc/rockchip/common/sdk_linux/ipc/ |
H A D | shm.c | 522 return sfd->vm_ops->fault(vmf);
in shm_fault() 600 WARN_ON(!sfd->vm_ops->fault);
in shm_mmap() 675 .fault = shm_fault,
|