rocr/driver: add SetTrapHandler API to driver interface

This commit introduces a new SetTrapHandler API to the driver interface

- Implemented SetTrapHandler in KfdDriver to set trap handlers using
  hsaKmtSetTrapHandler.
- Added a stub implementation of SetTrapHandler in XdnaDriver that returns
  HSA_STATUS_ERROR.
- Updated the driver interface in driver.h to include the new SetTrapHandler
  method.
- Modified GpuAgent to use driver().SetTrapHandler instead of directly calling
  hsaKmtSetTrapHandler.

Signed-off-by: Honglei Huang <Honglei1.Huang@amd.com>


[ROCm/ROCR-Runtime commit: d874b8003a]
This commit is contained in:
Honglei Huang
2025-06-27 13:35:20 +08:00
committed by Huang, Honglei1
parent 5e7fd3b5ba
commit 4fea8ea1fd
6 changed files with 35 additions and 7 deletions
@@ -2249,10 +2249,8 @@ hsa_status_t GpuAgent::UpdateTrapHandlerWithPCS(pcs_sampling_data_t* pcs_hosttra
}
// Bind the trap handler to this node.
HSAKMT_STATUS retKmt =
HSAKMT_CALL(hsaKmtSetTrapHandler(node_id(), trap_code_buf_, trap_code_buf_size_, tma_addr, tma_size));
return (retKmt != HSAKMT_STATUS_SUCCESS) ? HSA_STATUS_ERROR : HSA_STATUS_SUCCESS;
return driver().SetTrapHandler(node_id(), trap_code_buf_, trap_code_buf_size_, tma_addr,
tma_size);
}
void GpuAgent::BindTrapHandler() {
@@ -2292,9 +2290,9 @@ void GpuAgent::BindTrapHandler() {
}
// Bind the trap handler to this node.
HSAKMT_STATUS err = HSAKMT_CALL(hsaKmtSetTrapHandler(node_id(), trap_code_buf_, trap_code_buf_size_,
tma_addr, tma_size));
assert(err == HSAKMT_STATUS_SUCCESS && "hsaKmtSetTrapHandler() failed");
hsa_status_t err =
driver().SetTrapHandler(node_id(), trap_code_buf_, trap_code_buf_size_, tma_addr, tma_size);
assert(err == HSA_STATUS_SUCCESS && "SetTrapHandler() failed");
}
void GpuAgent::InvalidateCodeCaches(void *ptr, size_t size) {