2
0

Include event_id in SDMA interrupt payload.

The event id assists KFD in locating the proper event associated
with the interrupt.

Change-Id: I75d58b6be74dd5b1edb0c5fe2b9d01538a649ba1
Este cometimento está contido em:
Sean Keely
2021-11-10 17:47:53 -06:00
ascendente 48e4e2c5ff
cometimento d65e00bcc5
2 ficheiros modificados com 4 adições e 3 eliminações
+1 -1
Ver ficheiro
@@ -208,7 +208,7 @@ class BlitSdma : public BlitSdmaBase {
void BuildGetGlobalTimestampCommand(char* cmd_addr, void* write_address);
void BuildTrapCommand(char* cmd_addr);
void BuildTrapCommand(char* cmd_addr, uint32_t event_id);
void BuildGCRCommand(char* cmd_addr, bool invalidate);
+3 -2
Ver ficheiro
@@ -384,7 +384,7 @@ hsa_status_t BlitSdma<RingIndexTy, HwIndexMonotonic, SizeToCountOffset, useGCR>:
static_cast<uint32_t>(out_signal.signal_.event_id));
command_addr += fence_command_size_;
BuildTrapCommand(command_addr);
BuildTrapCommand(command_addr, out_signal.signal_.event_id);
}
ReleaseWriteAddress(curr_index, total_command_size);
@@ -911,13 +911,14 @@ void BlitSdma<RingIndexTy, HwIndexMonotonic, SizeToCountOffset,
template <typename RingIndexTy, bool HwIndexMonotonic, int SizeToCountOffset, bool useGCR>
void BlitSdma<RingIndexTy, HwIndexMonotonic, SizeToCountOffset, useGCR>::BuildTrapCommand(
char* cmd_addr) {
char* cmd_addr, uint32_t event_id) {
SDMA_PKT_TRAP* packet_addr =
reinterpret_cast<SDMA_PKT_TRAP*>(cmd_addr);
memset(packet_addr, 0, sizeof(SDMA_PKT_TRAP));
packet_addr->HEADER_UNION.op = SDMA_OP_TRAP;
packet_addr->INT_CONTEXT_UNION.int_ctx = event_id;
}
template <typename RingIndexTy, bool HwIndexMonotonic, int SizeToCountOffset, bool useGCR>