Commit Graph

271 Commits

Author SHA1 Message Date
Felix Kuehling 5c323f2611 kfdtest: Allow some CS to fail in EvictTest
amdgpu_cs_submit can fail intermittently if another process has too much
memory reserved at the time. Allow a small percental of command
submissions to fail to make the test more robust.

Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Change-Id: If9f62b2b6f67be71420016d4e38d4dd6b6bca9a5


[ROCm/ROCR-Runtime commit: 8baf02e80b]
2021-05-03 11:01:35 -04:00
Felix Kuehling c621b721fe kfdtest: Workaround delayed page faults
Delayed page faults from a terminated process can be attributed to the
next process with the same PASID. Work around that by adding a delay
after the Exception tests to allow the kernel to clean up any fault
storms before the next test.

Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Change-Id: Id310c13ea9eb92b04d37b95d91a0dd60bd9954e5


[ROCm/ROCR-Runtime commit: bd68646772]
2021-05-03 11:01:24 -04:00
Felix Kuehling 4da176c09d kfdtest: Handle EINTR in waitpid
If the signal arrives too late, it interrupts waitpid. Handle this
situation gracefully.

Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Change-Id: If4925c352c81ba7fef8a940460b91f5e720b451e


[ROCm/ROCR-Runtime commit: 25288e07dc]
2021-05-03 11:01:11 -04:00
Alex Sierra 6ae996c151 kfdtest: SetGetAttributes default access attr returned based on xnack
After unregistered memory is added, now default access attribute
is returned based on xnack configuration.

Change-Id: I8ef44fe1e165ba009622e8112436c1f7a683f6cb
Signed-off-by: Alex Sierra <alex.sierra@amd.com>


[ROCm/ROCR-Runtime commit: 0a2d7d8319]
2021-04-27 14:18:15 -04:00
Eric Huang 00bb7d4179 kfdtest: remove scc bit for cache coherence tests
It is to address gfx90a HW memory model changes.

Signed-off-by: Eric Huang <jinhuieric.huang@amd.com>
Change-Id: Ie5c5c5ee5ddfb75c0b4f625baf59ce37b4cc7c31


[ROCm/ROCR-Runtime commit: a6703395f6]
2021-04-26 19:55:49 -04:00
Philip Yang 92fe0df166 kfdtest: skip KFDSVMEvictTest.QueueTest on gfx10
KFDSVMEvictTest.QueueTest shader asm code need update to support gfx10
and gfx9, skip the test to unblock CI test.

Change-Id: Id2842127cf5fc98a652afa82035a4b3603bf5c33
Signed-off-by: Philip Yang <Philip.Yang@amd.com>


[ROCm/ROCR-Runtime commit: 7d53e94750]
2021-04-26 10:34:03 -04:00
Harish Kasiviswanathan 8bdbac1bf1 kfdtest: Remove GFX9 assembler meta information
Fixes assembler error. The SP3 backend if already set to FamilyId

Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
Change-Id: If127a71693b293e2748b06efb668a359b939cd14


[ROCm/ROCR-Runtime commit: e06d549337]
2021-04-21 14:27:16 -04:00
Joseph Greathouse cc17bcffee Update GWS tests for gfx1030
gfx10 GPUs such as gfx1030 need new assembly code to test
the GWS. Removed scalar stores and added proper usage of DLC and
VSCNT waits. Removed gfx9-specific assembler meta-values.

Change-Id: I2bbdb77692ace2dba10997f721ba9decaa9be82a


[ROCm/ROCR-Runtime commit: c1c46d9c97]
2021-04-19 10:21:21 -04:00
Mike Li 79a9c9fbcf Add cache information for GPU
Signed-off-by: Mike Li <Tianxinmike.Li@amd.com>
Change-Id: I93606e676ae944fa3d72886654566c75ab8f9806


[ROCm/ROCR-Runtime commit: 77f1bfa277]
2021-04-19 09:55:30 -04:00
Felix Kuehling 582f013283 kfdtest: add SVM tests
KFD changes are ready, all SVM tests should pass now. Skip SVM tests if
the SVM API is not supported.

Change-Id: I5e358565a0458eea45eae0aaf4969ce3a36574a7
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Signed-off-by: Alex Sierra <Alex.Sierra@amd.com>
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>


[ROCm/ROCR-Runtime commit: e8990cf830]
2021-04-16 00:12:48 -04:00
Kent Russell 3a90583c47 Merge gfx90a into amd-staging
Conflicts:
	CMakeLists.txt
	include/hsakmt.h
	src/libhsakmt.h
	src/libhsakmt.ver
	src/queues.c
	src/topology.c
	tests/kfdtest/src/KFDMemoryTest.cpp
	tests/kfdtest/src/KFDTestUtil.hpp

Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: Ic2732e7c0b5e42c1a3a91223f65a65064b602181


[ROCm/ROCR-Runtime commit: 83d80074f7]
2021-03-02 07:48:22 -05:00
Eric Huang 20b3f20fa0 KFDTest: add cache coherence tests for gfx90a
Three kfd subtests are added to verify new XGMI connection with
cache coherence HW link on A+A.

Signed-off-by: Eric Huang <JinhuiEric.Huang@amd.com>
Change-Id: I6960ec91cbfb696c4e6acb3b79fd83107003acdd


[ROCm/ROCR-Runtime commit: 9aa521d1ff]
2021-02-23 12:22:32 -05:00
Harish Kasiviswanathan 60f8eb9441 kfdtest: Add gfx9_PollNCMemory function to support NC memory
In A+A all system memory is mapped as NC. So add a new function
gfx9_PollNCMemory which will support NC memory.

Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
Change-Id: I097b95fb156f73d6f480cd4fd262cc6fa5933f69


[ROCm/ROCR-Runtime commit: 085005f07b]
2021-02-23 12:20:29 -05:00
Eric Huang 9c4cb65fe5 kfdtest: fix KFDQMTest.Atomics test failure on A+A
destBuf is mapped as cached, the intruction flat_atomic_add
operates on cache that cause test failed. Adding scc modifier
in the instruction will fix the issue.

Signed-off-by: Eric Huang <jinhuieric.huang@amd.com>
Change-Id: I8e138f93ae4f5e23020e3ac1549ef924968a74c5


[ROCm/ROCR-Runtime commit: f7759df6e0]
2021-02-23 12:20:29 -05:00
Harish Kasiviswanathan 2e82a94d97 kfdtest: A+A: CP writes to NC mem need flush
Refer to commit "Mark buffers accessed by CP as UC"

A+A buffers are mapped as NC. CP (PM4Writes) need ReleaseMem function to
ensure the write go through to the memory

Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
Change-Id: I4ee55a6e40fba078f5950d95c8fee7ee076260bf


[ROCm/ROCR-Runtime commit: 57f46b53ec]
2021-02-23 12:20:29 -05:00
Harish Kasiviswanathan d77bbbe8f7 kfdtest: A+A: Mark queue address as UC
Refer to commit: " Mark buffers accessed by CP as UC"

Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
Change-Id: I1816e035dbb3178f28f5e34b050c20ecca282060


[ROCm/ROCR-Runtime commit: 0e8500b886]
2021-02-23 12:20:29 -05:00
Harish Kasiviswanathan e140e8f797 kfdtest: Add Uncached flag to HsaMemoryBuffer constructor
Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
Change-Id: I14b0a73ffb04f4798547fe7003de1440736b413d


[ROCm/ROCR-Runtime commit: 44adc3dafd]
2021-02-23 12:20:29 -05:00
Oak Zeng bf08004531 Delete device stepping check
On every new asic with new stepping, we need to manually relax this
checking. This check is not very helpful. Delete it.

Change-Id: I11f813023ca2566d82f6d11121d4be38c296674b
Signed-off-by: Oak Zeng <Oak.Zeng@amd.com>


[ROCm/ROCR-Runtime commit: 1f05b54dc9]
2021-02-23 12:20:29 -05:00
Eric Huang fcad72b475 KFDTest: fix an exception bug in P2PTest
The largebar check will exit exceptionally from test
when destination node is not set.

Signed-off-by: Eric Huang <jinhuieric.huang@amd.com>
Change-Id: I8bf0fed613250cc71468208e645fc562fb1a8757


[ROCm/ROCR-Runtime commit: 18ead8815c]
2021-02-23 12:20:29 -05:00
Eric Huang d6fcfcdccf kfdtest: add function to determine XGMI link to cpu
Signed-off-by: Eric Huang <jinhuieric.huang@amd.com>
Change-Id: I7650f7857f0eecd2ad587634ae11c1cf5116bd97


[ROCm/ROCR-Runtime commit: 198b5bd450]
2021-02-23 12:20:29 -05:00
Mukul Joshi 2efdaf30a2 Add SP3 assembler support for gfx90a.
Add updated SP3 static library with support for gfx90a and
also add initial corresponding changes in kfdtest.

Change-Id: I71bc6404ace7f9bf0dd74e712287136aa2b8a03d


[ROCm/ROCR-Runtime commit: c861873dae]
2021-02-23 12:20:29 -05:00
Yong Zhao b1f7193ce6 kfdtest: Add a simple test case to test local memory
Given the chance of local memory breakage is so high on emulators, we
should use this simple test to check the local memory function.

Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>
Change-Id: Ifc48c12e11d75cc777ed7ea13e03bf54c2458e12


[ROCm/ROCR-Runtime commit: 690a148427]
2021-02-23 12:20:29 -05:00
Yong Zhao 61cb037044 kfdtest: Improve the message when CWSR basic test does not pass
This will give out more info.

Change-Id: I407422b84bebdf39a886c57736093a035ff02118
Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>


[ROCm/ROCR-Runtime commit: 8881075ab2]
2021-02-23 12:20:29 -05:00
Yong Zhao f27f933e53 Program mmCOMPUTE_PGM_RSRC3 on gfx90a
Change-Id: If387d137ebd388f5aea930a5f7bca3413dcbfcce
Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>


[ROCm/ROCR-Runtime commit: be09658247]
2021-02-23 12:19:42 -05:00
Jay Cornwall f4dffc12a5 kfdtest: Add KFDCWSRTest.InterruptRestore
Test for HQD preemption during stalled context restore. Added for
regression testing against new microcode.

Change-Id: I13eb7d1c598062390e12cf8a5237e53b6489f232
Signed-off-by: Jay Cornwall <jay.cornwall@amd.com>


[ROCm/ROCR-Runtime commit: 526afa8394]
2021-02-08 13:05:42 -05:00
Yifan Zhang 72b5ce407a 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>


[ROCm/ROCR-Runtime commit: 742f718722]
2020-12-17 07:41:24 -05:00
Chengming Gui 5d08071b4f kfdtest: remove unsupported modifier 'offset'
fix 
v2: fix VGPR conflict
v3: use s_addc_u32 to replace s_add_u32

Signed-off-by: Chengming Gui <Jack.Gui@amd.com>
Change-Id: I8fe6bf1f5bf99544038ad16128c2bebd559d3da9


[ROCm/ROCR-Runtime commit: 3ed8b96bf0]
2020-12-14 17:29:13 +08:00
Philip Cox c03f46e198 kfdtest: increase default timeout to 10,000
The default kfdtest timeout is not enough for certain platforms, and
tests are failing.

Change-Id: I2027eadcbeb12a2fbbc9c55f92f31869fa13dbcb
Signed-off-by: Philip Cox <Philip.Cox@amd.com>


[ROCm/ROCR-Runtime commit: 4bbfbe7789]
2020-11-27 15:06:41 -05:00
Gang Ba 3d11816985 kfdtest: check peer accessible with new function
check GPU peer accessible with p2p_links in system

Signed-off-by: Gang Ba <gaba@amd.com>
Change-Id: I026f16564303b687811d6648f0b7f84be6819979


[ROCm/ROCR-Runtime commit: 8e94dde685]
2020-11-26 10:34:06 -05:00
Chengming Gui 55fe1ba5a3 kfdtest: update shader code for gfx10.3 kfdtest
s_store_* instruction set was retired from gfx10.3

Signed-off-by: Chengming Gui <Jack.Gui@amd.com>
Change-Id: Ibe41a3fe7e053fb345b1af6ad4abc22a0885bc81


[ROCm/ROCR-Runtime commit: f283fe2854]
2020-11-03 22:25:39 -05:00
Kent Russell 693a1d2b95 kfdtest: Fix bit compare logic by using | instead of ||
We want to compare bits, not check if a defined value is true

Change-Id: Ie51ede96d18eae01aff6677d852a056ee12bd9c6


[ROCm/ROCR-Runtime commit: e34dfa8ebd]
2020-11-02 06:03:59 -05:00
Kent Russell 9057877de1 kfdtest: Add missing default switch label in GetQueue function
There is no default case, and we were missing a few types defined from
hsakmttypes.h. This was found via clang

Change-Id: I26193cb111a9d8220b1eff21c7313fe060288f36


[ROCm/ROCR-Runtime commit: 761d9d84d2]
2020-11-02 06:03:59 -05:00
Chengming Gui 90298c1436 kfdtest: fix MTYPE error when init sdma fence packet
Signed-off-by: Chengming Gui <Jack.Gui@amd.com>
Change-Id: I14a1ef204dbd5ab1e9f1840b9555f88b0df361c0


[ROCm/ROCR-Runtime commit: befc7edaea]
2020-09-21 03:57:12 -04:00
Eric Huang 8f8307a739 kfdtest: change shader command to avoid compile error for gfx90a
Signed-off-by: Eric Huang <jinhuieric.huang@amd.com>
Change-Id: I531ebac162403cc957802bbcdb34cdc022be3a50


[ROCm/ROCR-Runtime commit: 0003b6d147]
2020-06-17 10:15:12 -04:00
Ori Messinger 2956b62f2a Create KFDTest for SDMA Fault
The purpose of this KFDTest is to investigate the behaviour of an
SDMA queue when an invalid memory address is used.

v2: Don't wait for SDMA queue to finish - it won't finish because of
the gpuvm fault.

v3: Create kfd event before SDMA queue submission. This fix the issue
that gpuvm fault happens earlier than kfd event is created then KFD
exception handler can't find the kfd event (to wake up kfd test)

v4: Instead of using 0x12345678 as the invalid VA, map one page of
FB to gpu and unmap it. Use the mapped GPUVA as the
invalid address

Change-Id: I58af1511f75d869adddede302b238c2725f3fe5a
Signed-off-by: Ori Messinger <Ori.Messinger@amd.com>
Signed-off-by: Oak Zeng <Oak.Zeng@amd.com>


[ROCm/ROCR-Runtime commit: 46f5e83066]
2020-05-11 18:52:35 -04:00
Kent Russell ff59075907 Fix HostAccess flags for XGMI configs in P2PTest
We need HostAccess for large-bar XGMI configs for this test,
but we can't use it on small-bar XGMI configs, so deal with it
appropriately

Change-Id: Ic16b810de03adfc63de21a00c55e5f3ea1ce66d1


[ROCm/ROCR-Runtime commit: dc784ba482]
2020-05-11 11:12:33 -04:00
Jonathan Kim ceb1917610 kfdtest: do not request host accessible memory for P2P tests
Do not request host accessible memory otherwise small-bar XGMI fails.

Change-Id: I6b1e750839ae66a34c85405fa8d0a4aa455399ef
Signed-off-by: Jonathan Kim <Jonathan.Kim@amd.com>


[ROCm/ROCR-Runtime commit: af249159ee]
2020-04-17 23:42:10 -04:00
Divya Shikre 24a2a3295c kfdtest: Provide Unique ID information.
Signed-off-by: Divya Shikre <DivyaUday.Shikre@amd.com>
Change-Id: I9a837a3d1ab38f5ad05673406874d862c9e97541


[ROCm/ROCR-Runtime commit: 96259b5830]
2020-03-18 15:55:59 -04:00
Yong Zhao d3cb9399ca kfdtest: Clean up KFDEvictTest
Move the shader code before the test case code so that all test case
code is consecutive.

Rectify the print messages and avoid calling GetSysMemSize() repeatedly.

Change-Id: I1c4aa5552de4d74163717fe66ad9759fb09e1316
Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>


[ROCm/ROCR-Runtime commit: 7a852be42e]
2020-02-13 15:42:04 -05:00
Yong Zhao a139e04896 kfdtest: Adapt the CWSR test for emulators
The original test takes forever to run on emulators because emulators
are much slower than Asic. So intelligently detect the emulator scenarios
and reduce the run time by slashing the iteration times.

Change-Id: I087f43c04c2b23b5ab2ecaad07533b767c337e94
Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>


[ROCm/ROCR-Runtime commit: 21cda69ba9]
2020-02-13 11:35:37 -05:00
Kent Russell 0251b4b0e2 Remove RegisterForeignDeviceMem test code
Use an "if 0" to remove the code, as it is not working as expected. The
test is supposed to test mapping from a foreign device (like a NIC), so
it uses a separate GPU to map, but this mapping can be evicted and thus
the test can fail unexpectedly. Remove the code until the test can be
reworked

Change-Id: Ie4a15c2a018bbd8e931b06b6700d10b3be86e410


[ROCm/ROCR-Runtime commit: 0d4c209552]
2020-02-13 10:04:01 -05:00
Eric Huang 48b44a5b6f kfdtest: fix infinite loop in sdma multicopy
when variable interval become zero, the loop of while (timeConsumption >= interval)
will be a infinite loop. The fix is to avoid that case.

Change-Id: I8fd07296925300bace5ab7d3da86482b6d8b0d03
Signed-off-by: Eric Huang <JinhuiEric.Huang@amd.com>


[ROCm/ROCR-Runtime commit: 634b30119a]
2020-01-23 14:54:23 -05:00
Felix Kuehling 2e3ae4b983 libhsakmt: Improve error handling in child process
Check for errno == EBADF in kmtIoctl to detect misuse of the kfd_fd
in a forked child process.

Detect being in a forked child process pro-actively by implementing
a pthread_atfork callback.

Make sure all mutexes get reinitialized in the child process to avoid
deadlocks.

Check for being in a forked child process in CHECK_KFD_OPENED so that
all hsaKmt functions will return the appropriate status
HSAKMT_STATUS_KERNEL_IO_CHANNEL_NOT_OPENED.

Update InvalidKFDHandleTest to expect that error code.

Change-Id: I0238e5fba344dcaa454e97a35db2e2dcc8d1f607
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>


[ROCm/ROCR-Runtime commit: 87e10cd0b4]
2020-01-20 18:01:21 -05:00
Yong Zhao 3712ff7ddb kfdtest: Add basic tests for XGMI SDMA queues
After XGMI SDMA queues were separated from regular SDMA queues, they
were not covered in the current tests. Add tests for them now.

Change-Id: I036e3ca5d583ab7f022a9dc6cda3ef867f4773a0
Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>


[ROCm/ROCR-Runtime commit: fe97612800]
2020-01-10 15:32:12 -05:00
Yong Zhao 9fc1362ddc kfdtest: Improve the stablility of SignalHandling test
On gfx1012, allocating 1/4 of the system memory on a 32G RAM machine
could fail, resulting in this test to fail. Limit the maximum buffer
to allocate to be smaller than 3G to accommodate this situation.

Change-Id: I38b0a0f7da1f0b9ca851e04d2d0a51767858c801
Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>


[ROCm/ROCR-Runtime commit: 2b70d73f68]
2020-01-07 17:28:57 -05:00
Oak Zeng 1304a3eab1 Fix GWS test function call parameter issue
Change-Id: I3f4fde9ec8268362cffecb2d95177913b583486f
Signed-off-by: Oak Zeng <Oak.Zeng@amd.com>


[ROCm/ROCR-Runtime commit: 38b429fd52]
2020-01-06 08:11:49 -05:00
Huang Rui cc2162d8e9 libhsakmt: add NumCpQueues and NumSdmaQueuesPerEngine data field (v3)
NumCpQueues and NumSdmaQueuesPerEngine should be got by kfd driver not hardcode.
So add two data fields in HsaNodeProperties then thunk is able to get it from sysfs
that exposed by kfd.

v2: change NumCpQueues/NumSdmaQueuesPerEngine to one byte.
v3: merge two commits as one to avoid ABI update two times.

Change-Id: Ie386e4685f13493e22db6e207a399db6a4c5b9dc
Signed-off-by: Huang Rui <ray.huang@amd.com>


[ROCm/ROCR-Runtime commit: 06464b917d]
2020-01-03 23:27:42 -05:00
Oak Zeng 22b5e2b003 Add KFD GWS test
Change-Id: Ie90d9119da6cee41ddab10deb427d4ae9fd9a16b
Signed-off-by: Oak Zeng <Oak.Zeng@amd.com>


[ROCm/ROCR-Runtime commit: af7feb93db]
2020-01-03 15:19:56 -05:00
Yong Zhao e737a133a1 kfdtest: Rework the shader used for CWSR test
The shader supports multiple work items. It also eliminates one input buffer.

Change-Id: If0596b306065980b74fb92613e95610defc00164
Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>


[ROCm/ROCR-Runtime commit: facb6c056d]
2020-01-02 16:05:01 -05:00
Yong Zhao a67ef3e675 kfdtest: Rename two exception test cases
The old names are not accurate enough and we rename them according to
their corresponding fault types.

Change-Id: Icf4d52ba0ab9d49af5d912a0feb82665b1e8d344
Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>


[ROCm/ROCR-Runtime commit: f7c0172385]
2019-12-17 19:46:33 -05:00