mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-11-14 18:36:34 +00:00
drm/amdkfd: Add module parameter of send_sigterm
This patch adds a new kernel module parameter to amdkfd, called send_sigterm. This parameter specifies whether amdkfd should send the SIGTERM signal to an HSA process, when the following conditions occur: 1. The GPU triggers an exception regarding a kernel that was issued by this process. 2. The HSA process isn't waiting on an event that handles this exception. The default behavior is not to send a SIGTERM and suffice with a dmesg error print. Reviewed-by: Ben Goz <ben.goz@amd.com> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
This commit is contained in:
parent
930c5ff439
commit
81663016db
3 changed files with 20 additions and 3 deletions
|
|
@ -872,10 +872,16 @@ static void lookup_events_by_type_and_signal(struct kfd_process *p,
|
||||||
|
|
||||||
/* Send SIGTERM no event of type "type" has been found*/
|
/* Send SIGTERM no event of type "type" has been found*/
|
||||||
if (send_signal) {
|
if (send_signal) {
|
||||||
dev_warn(kfd_device,
|
if (send_sigterm) {
|
||||||
"Sending SIGTERM to HSA Process with PID %d ",
|
dev_warn(kfd_device,
|
||||||
|
"Sending SIGTERM to HSA Process with PID %d ",
|
||||||
|
p->lead_thread->pid);
|
||||||
|
send_sig(SIGTERM, p->lead_thread, 0);
|
||||||
|
} else {
|
||||||
|
dev_err(kfd_device,
|
||||||
|
"HSA Process (PID %d) got unhandled exception",
|
||||||
p->lead_thread->pid);
|
p->lead_thread->pid);
|
||||||
send_sig(SIGTERM, p->lead_thread, 0);
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,11 @@ module_param(max_num_of_queues_per_device, int, 0444);
|
||||||
MODULE_PARM_DESC(max_num_of_queues_per_device,
|
MODULE_PARM_DESC(max_num_of_queues_per_device,
|
||||||
"Maximum number of supported queues per device (1 = Minimum, 4096 = default)");
|
"Maximum number of supported queues per device (1 = Minimum, 4096 = default)");
|
||||||
|
|
||||||
|
int send_sigterm;
|
||||||
|
module_param(send_sigterm, int, 0444);
|
||||||
|
MODULE_PARM_DESC(send_sigterm,
|
||||||
|
"Send sigterm to HSA process on unhandled exception (0 = disable, 1 = enable)");
|
||||||
|
|
||||||
bool kgd2kfd_init(unsigned interface_version, const struct kgd2kfd_calls **g2f)
|
bool kgd2kfd_init(unsigned interface_version, const struct kgd2kfd_calls **g2f)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,12 @@ extern int max_num_of_queues_per_device;
|
||||||
/* Kernel module parameter to specify the scheduling policy */
|
/* Kernel module parameter to specify the scheduling policy */
|
||||||
extern int sched_policy;
|
extern int sched_policy;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Kernel module parameter to specify whether to send sigterm to HSA process on
|
||||||
|
* unhandled exception
|
||||||
|
*/
|
||||||
|
extern int send_sigterm;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enum kfd_sched_policy
|
* enum kfd_sched_policy
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue