arch-gcn3: Update LmReqsInPipe in atomic flats when execMask=0
authorKyle Roarty <kyleroarty1716@gmail.com>
Wed, 12 Aug 2020 23:08:05 +0000 (18:08 -0500)
committerKyle Roarty <kyleroarty1716@gmail.com>
Thu, 27 Aug 2020 20:46:28 +0000 (20:46 +0000)
commit0983929a24e383efb16678df69364aec6b53cf2c
tree420722caee8f7647287f1069ebe83232fc77b680
parent52f392b947cd46064fac464f89decaa4a313ea73
arch-gcn3: Update LmReqsInPipe in atomic flats when execMask=0

In flat instructions, wrLmReqsInPipe/rdLmReqsInPipe are decremented
in the calcAddr() function. However, the calcAddr() function is only
called when execMask != 0.

This patch adds in statements to decrement wrLmReqsInPipe and
rdLmReqsInPipe in all implemented atomic flats when execMask is 0.

This fixes a scenario where vector local memory and flat instructions
are unable to execute due to LocalMemPipeline::isLMReqFIFOWrRdy
always returning false in ScheduleStage::dispatchReady after too many
atomic flats execute with execMask = 0

Change-Id: I081cfd3faf74bbfcf0728445e7160fa2a76a6a7e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/32614
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com>
Reviewed-by: Alexandru Duțu <alexandru.dutu@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/arch/gcn3/insts/instructions.cc