kfdtest: Take vram size into account when calculate buffer number.
Vram size is relatively smaller in APU, e.g. 512MB. Current MMBench doesn't support small vram system. Running MMBench may have below errors: [ RUN ] KFDMemoryTest.MMBench [ ] Found VRAM of 512MB. [ ] Test (avg. ns) alloc mapOne umapOne mapAll umapAll free [ ] -------------------------------------------------------------------------- [ ] 4K-SysMem-noSDMA 4569 20098 1292 18835 926 2218 [ ] 64K-SysMem-noSDMA 12738 20469 1030 19201 1293 4560 [ ] 2M-SysMem-noSDMA 256384 21020 1022 20568 1196 36294 [ ] 32M-SysMem-noSDMA 4031812 83750 5406 61156 4312 535656 [ ] 1G-SysMem-noSDMA 129260000 427000 34000 390000 30000 18548000 [ ] -------------------------------------------------------------------------- [ ] 4K-VRAM-noSDMA 3594 19637 979 19624 1357 2829 [ ] 64K-VRAM-noSDMA 3540 21062 1407 19614 1654 3024 /home/foreman/build/hsakmt-roct-amdgpu-1.0.9/sources/libhsakmt/tests/kfdtest/src/KFDMemoryTest.cpp:1119: Failure Value of: (hsaKmtAllocMemory(allocNode, bufSize, memFlags, &bufs[i])) Actual: 6 Expected: HSAKMT_STATUS_SUCCESS Which is: 0 [ FAILED ] KFDMemoryTest.MMBench (723 ms) Fix this issue by changing buffer number calculation in MMBench. Change-Id: I5cce95707a048248f1e825c807586818619eddaf Signed-off-by: Yifan Zhang <yifan1.zhang@amd.com>
This commit is contained in:
@@ -1099,6 +1099,7 @@ TEST_F(KFDMemoryTest, MMBench) {
|
||||
unsigned nBufs = TEST_NBUFS(testIndex);
|
||||
unsigned memType = TEST_MEMTYPE(testIndex);
|
||||
bool interleaveSDMA = TEST_SDMA(testIndex);
|
||||
unsigned bufLimit;
|
||||
HSAuint64 allocTime, map1Time, unmap1Time, mapAllTime, unmapAllTime, freeTime;
|
||||
HSAuint32 allocNode;
|
||||
|
||||
@@ -1119,6 +1120,13 @@ TEST_F(KFDMemoryTest, MMBench) {
|
||||
memFlags.ui32.PageSize = HSA_PAGE_SIZE_4KB;
|
||||
memFlags.ui32.HostAccess = 0;
|
||||
memFlags.ui32.NonPaged = 1;
|
||||
/* Upper limit of buffer number to fit 90% vram size */
|
||||
bufLimit = ((vramSizeMB << 20) * 9 / 10) / bufSize ;
|
||||
if (bufLimit == 0)
|
||||
continue; // skip when bufSize > vram
|
||||
|
||||
/* When vram is too small to fit all the buffers, fill 90% vram size*/
|
||||
nBufs = (nBufs < bufLimit) ? nBufs : bufLimit;
|
||||
}
|
||||
|
||||
/* Allocation */
|
||||
|
||||
مرجع در شماره جدید
Block a user