summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorThomas Fleury <tfleury@nvidia.com>2019-04-30 20:19:51 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2020-01-30 02:41:45 -0500
commitdc281d6a9ebadaeb66dab092b40b7d6f4559ee39 (patch)
treecbe2c286c1549c2824eade89a25c033a86a7dd6e /include
parent6e91ecaae77d769955e5e1f34ded90c064e9c245 (diff)
gpu: nvgpu: add SET_CTX_MMU_DEBUG_MODE ioctl
Added NVGPU_DBG_GPU_IOCTL_SET_CTX_MMU_DEBUG_MODE ioctl to set MMU debug mode for a given context. Added gr.set_mmu_debug_mode HAL to change NV_PGPC_PRI_MMU_DEBUG_CTRL for a given channel. HAL implementation for native case is gm20b_gr_set_mmu_debug_mode. It internally uses regops, which directly writes to the register if the context is resident, or writes to gr context otherwise. Added NVGPU_SUPPORT_SET_CTX_MMU_DEBUG_MODE to enable the feature. NV_PGPC_PRI_MMU_DEBUG_CTRL has to be context switched in FECS ucode, so the feature is only enabled on TU104 for now. Bug 2515097 But 2713590 Change-Id: Ib4efaf06fc47a8539b4474f94c68c20ce225263f Signed-off-by: Thomas Fleury <tfleury@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2110720 (cherry-picked from commit af2ccb811d3de06f052b1dee39bd9ffa863ac8ce) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2208767 Reviewed-by: Kajetan Dutka <kdutka@nvidia.com> Reviewed-by: Alex Waterman <alexw@nvidia.com> Reviewed-by: Winnie Hsu <whsu@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit Tested-by: Kajetan Dutka <kdutka@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'include')
-rw-r--r--include/uapi/linux/nvgpu.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/include/uapi/linux/nvgpu.h b/include/uapi/linux/nvgpu.h
index 9197011b..786f8268 100644
--- a/include/uapi/linux/nvgpu.h
+++ b/include/uapi/linux/nvgpu.h
@@ -166,6 +166,8 @@ struct nvgpu_gpu_zbc_query_table_args {
166#define NVGPU_GPU_FLAGS_CAN_RAILGATE (1ULL << 29) 166#define NVGPU_GPU_FLAGS_CAN_RAILGATE (1ULL << 29)
167/* Usermode submit is available */ 167/* Usermode submit is available */
168#define NVGPU_GPU_FLAGS_SUPPORT_USERMODE_SUBMIT (1ULL << 30) 168#define NVGPU_GPU_FLAGS_SUPPORT_USERMODE_SUBMIT (1ULL << 30)
169/* Set MMU debug mode is available */
170#define NVGPU_GPU_FLAGS_SUPPORT_SET_CTX_MMU_DEBUG_MODE (1ULL << 32)
169/* SM LRF ECC is enabled */ 171/* SM LRF ECC is enabled */
170#define NVGPU_GPU_FLAGS_ECC_ENABLED_SM_LRF (1ULL << 60) 172#define NVGPU_GPU_FLAGS_ECC_ENABLED_SM_LRF (1ULL << 60)
171/* SM SHM ECC is enabled */ 173/* SM SHM ECC is enabled */
@@ -1414,8 +1416,20 @@ struct nvgpu_dbg_gpu_set_sm_exception_type_mask_args {
1414 _IOW(NVGPU_DBG_GPU_IOCTL_MAGIC, 23, \ 1416 _IOW(NVGPU_DBG_GPU_IOCTL_MAGIC, 23, \
1415 struct nvgpu_dbg_gpu_set_sm_exception_type_mask_args) 1417 struct nvgpu_dbg_gpu_set_sm_exception_type_mask_args)
1416 1418
1419/* MMU Debug Mode */
1420#define NVGPU_DBG_GPU_CTX_MMU_DEBUG_MODE_DISABLED 0
1421#define NVGPU_DBG_GPU_CTX_MMU_DEBUG_MODE_ENABLED 1
1422
1423struct nvgpu_dbg_gpu_set_ctx_mmu_debug_mode_args {
1424 __u32 mode;
1425 __u32 reserved;
1426};
1427#define NVGPU_DBG_GPU_IOCTL_SET_CTX_MMU_DEBUG_MODE \
1428 _IOW(NVGPU_DBG_GPU_IOCTL_MAGIC, 26, \
1429 struct nvgpu_dbg_gpu_set_ctx_mmu_debug_mode_args)
1430
1417#define NVGPU_DBG_GPU_IOCTL_LAST \ 1431#define NVGPU_DBG_GPU_IOCTL_LAST \
1418 _IOC_NR(NVGPU_DBG_GPU_IOCTL_SET_SM_EXCEPTION_TYPE_MASK) 1432 _IOC_NR(NVGPU_DBG_GPU_IOCTL_SET_CTX_MMU_DEBUG_MODE)
1419 1433
1420#define NVGPU_DBG_GPU_IOCTL_MAX_ARG_SIZE \ 1434#define NVGPU_DBG_GPU_IOCTL_MAX_ARG_SIZE \
1421 sizeof(struct nvgpu_dbg_gpu_access_fb_memory_args) 1435 sizeof(struct nvgpu_dbg_gpu_access_fb_memory_args)