From df5588a6330a20bd1331a4f4d88fa022ae075802 Mon Sep 17 00:00:00 2001 From: Brandon Yates Date: Tue, 9 Jul 2024 15:14:12 +0000 Subject: [PATCH] feature: Allocate fifo for debugger Related-to: NEO-7980 Signed-off-by: Brandon Yates --- shared/source/built_ins/sip.cpp | 1 + shared/test/common/helpers/sip_init.cpp | 2 +- shared/test/unit_test/built_ins/sip_tests.cpp | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/shared/source/built_ins/sip.cpp b/shared/source/built_ins/sip.cpp index a61ce8e390..586481f3be 100644 --- a/shared/source/built_ins/sip.cpp +++ b/shared/source/built_ins/sip.cpp @@ -105,6 +105,7 @@ size_t SipKernel::getStateSaveAreaSize(Device *device) const { hdr->regHeaderV3.num_threads_per_eu * hdr->regHeaderV3.state_save_size + hdr->versionHeader.size * 8 + hdr->regHeaderV3.state_area_offset; + stateSaveAreaSize += hdr->regHeaderV3.fifo_size * sizeof(SIP::fifo_node); } else { stateSaveAreaSize = numSlices * diff --git a/shared/test/common/helpers/sip_init.cpp b/shared/test/common/helpers/sip_init.cpp index 9d10772a7a..6f3a7af17a 100644 --- a/shared/test/common/helpers/sip_init.cpp +++ b/shared/test/common/helpers/sip_init.cpp @@ -151,7 +151,7 @@ std::vector createStateSaveAreaHeader(uint32_t version, uint16_t grfNum, u 0, // reserved0 4740, // sr_magic_offset 0, // fifo_offset; - 0, // fifo_size; + 100, // fifo_size; 0, // fifo_head; 0, // fifo_tail; 0, // fifo_version; diff --git a/shared/test/unit_test/built_ins/sip_tests.cpp b/shared/test/unit_test/built_ins/sip_tests.cpp index fcb645eb0e..0ae7652615 100644 --- a/shared/test/unit_test/built_ins/sip_tests.cpp +++ b/shared/test/unit_test/built_ins/sip_tests.cpp @@ -402,7 +402,9 @@ TEST_F(StateSaveAreaSipTest, givenCorrectStateSaveAreaHeaderWhenGetStateSaveArea EXPECT_EQ(0x1800u * numSlices * 8 * 7 + alignUp(sizeof(SIP::StateSaveAreaHeader), MemoryConstants::pageSize), SipKernel::getSipKernel(*pDevice, nullptr).getStateSaveAreaSize(pDevice)); MockSipData::mockSipKernel->mockStateSaveAreaHeader = MockSipData::createStateSaveAreaHeader(3); - EXPECT_EQ(0x1800u * numSlices * 8 * 7 + alignUp(sizeof(NEO::StateSaveAreaHeader), MemoryConstants::pageSize), SipKernel::getSipKernel(*pDevice, nullptr).getStateSaveAreaSize(pDevice)); + auto fifoSize = 100 * sizeof(SIP::fifo_node); + auto stateSaveSize = 0x1800u * numSlices * 8 * 7 + sizeof(NEO::StateSaveAreaHeader); + EXPECT_EQ(alignUp(fifoSize + stateSaveSize, MemoryConstants::pageSize), SipKernel::getSipKernel(*pDevice, nullptr).getStateSaveAreaSize(pDevice)); } TEST(DebugBindlessSip, givenDebuggerAndUseBindlessDebugSipWhenGettingSipTypeThenDebugBindlessTypeIsReturned) {