dev-hsa: Don't set _aqlComplete in setRdIdx method
This code is unnecessary as the read index is already correct. Furthermore, it can cause hangs in some situations where the packet SHOULD be marked as not complete. This causes a bug where the read index is incremented by 1 multiple times, causing the packet processor to read an invalid packet, followed by a hang after it does nothing. Change-Id: Iceda3c9606e018f60f8902770a2d9762c1c14304 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/61650 Maintainer: Jason Lowe-Power <power.jg@gmail.com> Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com> Maintainer: Matt Sinclair <mattdsinclair@gmail.com>
This commit is contained in:
@@ -608,14 +608,6 @@ void
|
||||
AQLRingBuffer::setRdIdx(uint64_t value)
|
||||
{
|
||||
_rdIdx = value;
|
||||
|
||||
// Mark entries below the previous doorbell value as complete. This will
|
||||
// cause the next call to freeEntry on the queue to increment the read
|
||||
// index to the next value which will be written to the doorbell.
|
||||
for (int i = 0; i <= value; ++i) {
|
||||
_aqlComplete[i] = true;
|
||||
DPRINTF(HSAPacketProcessor, "Marking _aqlComplete[%d] true\n", i);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user