diff options
Diffstat (limited to 'nvdebug_entry.c')
| -rw-r--r-- | nvdebug_entry.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/nvdebug_entry.c b/nvdebug_entry.c index 24fcd32..eee7351 100644 --- a/nvdebug_entry.c +++ b/nvdebug_entry.c | |||
| @@ -25,6 +25,7 @@ MODULE_DESCRIPTION("A scheduling debugging module for NVIDIA GPUs"); | |||
| 25 | // runlist_procfs.c | 25 | // runlist_procfs.c |
| 26 | extern struct file_operations runlist_file_ops; | 26 | extern struct file_operations runlist_file_ops; |
| 27 | extern struct file_operations preempt_tsg_file_ops; | 27 | extern struct file_operations preempt_tsg_file_ops; |
| 28 | extern struct file_operations resubmit_runlist_file_ops; | ||
| 28 | extern struct file_operations disable_channel_file_ops; | 29 | extern struct file_operations disable_channel_file_ops; |
| 29 | extern struct file_operations enable_channel_file_ops; | 30 | extern struct file_operations enable_channel_file_ops; |
| 30 | extern struct file_operations switch_to_tsg_file_ops; | 31 | extern struct file_operations switch_to_tsg_file_ops; |
| @@ -256,6 +257,17 @@ int __init nvdebug_init(void) { | |||
| 256 | "preempt_tsg", 0222, dir, compat_ops(&preempt_tsg_file_ops), | 257 | "preempt_tsg", 0222, dir, compat_ops(&preempt_tsg_file_ops), |
| 257 | (void*)device_id)) | 258 | (void*)device_id)) |
| 258 | goto out_nomem; | 259 | goto out_nomem; |
| 260 | /* On the TU104, the context scheduler (contained in the Host, aka | ||
| 261 | * PFIFO, unit) has been observed to sometimes to fail to schedule TSGs | ||
| 262 | * containing re-enabled channels. Resubmitting the runlist | ||
| 263 | * configuration appears to remediate this condition, and so this API | ||
| 264 | * is exposed to help reset GPU scheduling as necessary. | ||
| 265 | */ | ||
| 266 | // Create file `/proc/gpu#/resubmit_runlist`, world writable | ||
| 267 | if (!proc_create_data( | ||
| 268 | "resubmit_runlist", 0222, dir, compat_ops(&resubmit_runlist_file_ops), | ||
| 269 | (void*)device_id)) | ||
| 270 | goto out_nomem; | ||
| 259 | // Create file `/proc/gpu#/disable_channel`, world writable | 271 | // Create file `/proc/gpu#/disable_channel`, world writable |
| 260 | if (!proc_create_data( | 272 | if (!proc_create_data( |
| 261 | "disable_channel", 0222, dir, compat_ops(&disable_channel_file_ops), | 273 | "disable_channel", 0222, dir, compat_ops(&disable_channel_file_ops), |
