Matthew Poremba has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/65092?usp=email )
Change subject: dev-amdgpu: Fix interrupt handler address assignment
......................................................................
dev-amdgpu: Fix interrupt handler address assignment
The interrupt handler's base address is sent via MMIO and must be
shifted by 8 bits to convert to a byte address. The current code is
shifting the MMIO dword first then assigning, resulting in the top 8
bits being shifted out.
This changeset fixes the issue by assigning the dword to the 64-bit
address first then shifting after. Similarly, the upper dword is cast to
a 64-bit value first before shifting.
This fixes some "fence fallback timeout" errors in the m5term output.
These timeouts become a problem because the driver will reset after a
few hundred of them, killing any running GPU applications as part of the
process.
Change-Id: I0beec313f533765c94063bcf4de8c65aacf2986b
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/65092
Tested-by: kokoro <[email protected]>
Reviewed-by: Matt Sinclair <[email protected]>
Maintainer: Matt Sinclair <[email protected]>
---
M src/dev/amdgpu/interrupt_handler.cc
1 file changed, 30 insertions(+), 4 deletions(-)
Approvals:
Matt Sinclair: Looks good to me, approved; Looks good to me, approved
kokoro: Regressions pass
diff --git a/src/dev/amdgpu/interrupt_handler.cc
b/src/dev/amdgpu/interrupt_handler.cc
index 585c1cf..a771976 100644
--- a/src/dev/amdgpu/interrupt_handler.cc
+++ b/src/dev/amdgpu/interrupt_handler.cc
@@ -202,15 +202,14 @@
void
AMDGPUInterruptHandler::setBase(const uint32_t &data)
{
- regs.IH_Base = data << 8;
- regs.baseAddr |= regs.IH_Base;
+ regs.baseAddr = data;
+ regs.baseAddr <<= 8;
}
void
AMDGPUInterruptHandler::setBaseHi(const uint32_t &data)
{
- regs.IH_Base_Hi = data;
- regs.baseAddr |= ((uint64_t)regs.IH_Base_Hi) << 32;
+ regs.baseAddr |= static_cast<uint64_t>(data) << 40;
}
void
--
To view, visit
https://gem5-review.googlesource.com/c/public/gem5/+/65092?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I0beec313f533765c94063bcf4de8c65aacf2986b
Gerrit-Change-Number: 65092
Gerrit-PatchSet: 2
Gerrit-Owner: Matthew Poremba <[email protected]>
Gerrit-Reviewer: Alexandru Duțu (Alex) <[email protected]>
Gerrit-Reviewer: Jason Lowe-Power <[email protected]>
Gerrit-Reviewer: Matt Sinclair <[email protected]>
Gerrit-Reviewer: Matthew Poremba <[email protected]>
Gerrit-Reviewer: kokoro <[email protected]>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]