fix: Read fifo_head from state save area header correctly

Currently we are reading fifo_head from local copy of saved
stateSaveAreaHeader.
However, during fifo read dbgUMD is reading FIFO entries and
accordingly SIP would also update fifo_head.
Hence while accessing fifo_head, ensure that we always read
fifo_head from latest in memory state save area header.

Related-To: NEO-12787
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
This commit is contained in:
Jitendra Sharma
2024-09-24 22:46:06 +00:00
committed by Compute-Runtime-Automation
parent 468e309e11
commit 2ed2cb43db
2 changed files with 13 additions and 1 deletions

View File

@@ -1942,6 +1942,14 @@ TEST_F(DebugSessionTestSwFifoFixture, GivenSwFifoWhenReadGpuMemoryFailsDuringFif
EXPECT_EQ(ZE_RESULT_ERROR_UNKNOWN, session->readFifo(0, threadsWithAttention));
}
TEST_F(DebugSessionTestSwFifoFixture, GivenSwFifoWhenReadGpuMemoryFailsDuringUpdateOfLastHeadThenErrorReturned) {
EXPECT_FALSE(session->stateSaveAreaHeader.empty());
session->forcereadGpuMemoryFailOnCount = 4;
std::vector<EuThread::ThreadId> threadsWithAttention;
EXPECT_EQ(ZE_RESULT_ERROR_UNKNOWN, session->readFifo(0, threadsWithAttention));
}
TEST(DebugSessionTest, GivenSwFifoWhenStateSaveAreaVersionIsLessThanThreeDuringFifoReadThenFifoIsNotReadAndSuccessIsReturned) {
auto stateSaveAreaHeader = MockSipData::createStateSaveAreaHeader(2);