From d1bcd2d4052c73e19ad49ebeab1e2c0cd47a9053 Mon Sep 17 00:00:00 2001 From: Graham Sider Date: Thu, 8 Sep 2022 16:44:51 -0400 Subject: [PATCH] kfdtest: Make KFDCWSRTest.BasicTest buffer sizes dynamic KFDCWSRTest.BasicTest is parameterized to allow an easy method of tweaking the number of work-items (and save/restores). The input/output buffers were previously hardcoded to a single page, which would cause a segmentation fault if the number of work-items specified is greater than 1024 for wave32. Signed-off-by: Graham Sider Change-Id: Ieefc819a5d81c77cee88081a287fd383e6378e74 [ROCm/ROCR-Runtime commit: 73adbdee2c1391950e5ff66e3527a6e450967367] --- projects/rocr-runtime/tests/kfdtest/src/KFDCWSRTest.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/projects/rocr-runtime/tests/kfdtest/src/KFDCWSRTest.cpp b/projects/rocr-runtime/tests/kfdtest/src/KFDCWSRTest.cpp index 146ae2ae5a..da66efda19 100644 --- a/projects/rocr-runtime/tests/kfdtest/src/KFDCWSRTest.cpp +++ b/projects/rocr-runtime/tests/kfdtest/src/KFDCWSRTest.cpp @@ -88,8 +88,11 @@ TEST_P(KFDCWSRTest, BasicTest) { unsigned stopval = 0x1234'5678; unsigned outval = 0x8765'4321; - HsaMemoryBuffer inputBuf(PAGE_SIZE, defaultGPUNode, true, false, false); - HsaMemoryBuffer outputBuf(PAGE_SIZE, defaultGPUNode, true, false, false); + // 4B per work-item ==> 1 page per 1024 work-items (take ceiling) + unsigned bufSize = PAGE_SIZE * ((num_witems / 1024) + (num_witems % 1024 != 0)); + + HsaMemoryBuffer inputBuf(bufSize, defaultGPUNode, true, false, false); + HsaMemoryBuffer outputBuf(bufSize, defaultGPUNode, true, false, false); unsigned int* input = inputBuf.As(); unsigned int* output = outputBuf.As(); inputBuf.Fill(0);