커밋 그래프

904 커밋

작성자 SHA1 메시지 날짜
Kent Russell 52f5b666d6 kfdtest.exclude: Remove KFDEvictTest.BurstyTest on all ASICs
This is reported as failing on pretty much every ASIC, so move it to the
temporary exclude list for all ASICs until the test can be fixed.

Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: I2973feb5705c178db32009e4603376d1f5e94a2f
2021-08-17 08:27:13 -04:00
Graham Sider 9745c58d40 libhsakmt: Hotfix for incorrect hex gfx versions
Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: Ic67b7a3e1649288c8fdef85fef875327ffc50948
2021-08-11 16:59:44 -04:00
Chengming Gui cff8e4992c libhsakmt: Add DIDs for Beige_Goby
Signed-off-by: Chengming Gui <Jack.Gui@amd.com>
Change-Id: Iff82aa0ab70df49ffc6d8004e40b5cccd637da44
2021-08-09 11:32:11 +08:00
Graham Sider bb8deeae11 libhsakmt: Retrieve gfx version from sysfs
If lookup is successful, device info from find_hsa_gfxip_device() is
used to populate props->EngineId.ui32 gfx version fields and node CAL
name (props->AMDName).

If unsuccessful, uses gfx_target_version sysfs field if present
(otherwise results in error), and sets the node CAL name to
"GFX<GFX_VERSION>" (e.g. 9.0.8 -> GFX090008).

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: Id39c521b769aebbe40c934f19e03150a66884cce
2021-08-05 15:19:57 -04:00
Graham Sider 29369753f5 libhsakmt: Remove redundant checks, small bug fixes
Some g_system and Node ID checks already performed by validate_nodeid().
Fixes bug where hsaKmtGetNodeProperties() would return on
validate_nodeid() error without releasing lock. Switches some
conditionals to return INVALID_NODE_UNIT instead of INVALID_PARAMETER if
NodeId >= NumNodes. Removes some g_system assertions to return error
code rather than trigger a hard fault.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: Id1604b20c2cef8808b98cdad61bd47aa7ea3d229
2021-08-05 15:00:58 -04:00
Graham Sider 1ad1a2a817 libhsakmt: Remove asic_family vars/helpers
Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: I1bd054d8f9ffc56e2c48a5df4899966918f26e1b
2021-08-05 15:00:58 -04:00
Graham Sider 8f883d0830 libhsakmt: Replace asic_family with gfx version
All conditional logic previously dependent on asic_family now dependent
on gfx version. As such, HSA_FORCE_ASIC_TYPE is now deprecated and
HSA_OVERRIDE_GFX_VERSION should be used instead.

device_info structs containing asic_family, eop_buffer_size, and
doorbell_size removed (alongside dev_lookup_table[]). eop_buffer_size
and doorbell_size now determined via macro, with eop_buffer_size and
full gfx version field being added to queue struct.

Certain funcs previously dependent on DID or GPU ID now dependent on
Node ID (due to use of get_gfxv_by_node_id()).

Fixes sleeper bug where ctl_stack_size and debug_memory_size were being
incorrectly programmed on gfx90a.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: Iaabdc5c73920ad83b4b379cd6086992357b8ff10
2021-08-05 15:00:26 -04:00
Graham Sider 0b46d418c3 libhsakmt: Use gfx version conditions in pmc_table.c
get_block_properties() switch statement now based on major GFX version
instead of asic_family. Addition for NPI bringup only needed on major
GFX revisions unless differing perf_counter_block assignment necessary.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: Ia02676d2a3a8f968b67feeafbab534ef4c01c0dd
2021-08-05 14:54:58 -04:00
Graham Sider bc4aca039c libhsakmt: Use node_id in topology_is_svm_needed()
Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: I7773ccb959e60e43b816477c5659f1fe835ecbbd
2021-08-05 14:52:09 -04:00
Graham Sider 2f261a8dab libhsakmt: Deprecate is_gfx700()
Condition generalized by
(get_gfxv_by_node_id(NodeId) == GFX_VERSION_KAVERI)

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: Iff4f77043e3ce8e48a9e84fbf257ebf59abf5bbb
2021-08-05 14:50:07 -04:00
Graham Sider 8880610265 libhsakmt: Add gfx version defines, helpers
Add defines for converting between full gfx version (in decimal) to
major/minor/stepping values, and major/minor/stepping values to full gfx
version (in hex). The first is to be used when grabbing the gfx version
from sysfs, the second when returning the gfx version in
get_gfxv_by_node_id() for comparisions in Thunk.

Add enum for defines of full gfx versions for various cards. These are
to be used in conditionals to replace CHIP_*/asic_family comparisons. On
NPI bringup, addition to this enum will not be required for
functionality unless explicitly needed for a conditional. Most ASICs in
this enum simply for completeness.

Add get_gfxv_by_node_id(): returns full gfx version in hex.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: I9d1dba7fdd4a587a000eea2f4141a1d301bf4776
2021-08-05 14:48:07 -04:00
Kent Russell 6778da4460 CMakeLists: Re-enable pkgconfig, require libdrm
This was an implicit requirement, but the change to needing libdrm/drm.h
means we should be explicitly looking for this package during the build

Change-Id: I75064bf6f5477cb1ca99318681afca76c0060f72
2021-07-30 18:20:12 -04:00
Aaron Liu fc216a3668 libhsakmt: expand control stack size limit for all gfx103x
Expand check control stack size for Beige Goby, Van Gogh and Yellow Carp.

Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Change-Id: I6c8345bbb751eb9179fc740fe1674504b4295a5f
2021-07-30 10:24:25 -04:00
Aaron Liu 80e4cb6261 libhsakmt: reorder the list of GPUs in enum asic_family_type
Put CHIP_gfx90a next to CHIP_gfx908 to keep all the GFXv9
chips together.

Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Change-Id: I32b4b7f7746ae4bdaff7e178f13307c1bcfa93e1
2021-07-30 10:23:56 -04:00
Philip Yang 991cde0656 libhsakmt: update query pointer info document
Query pointer info return HsaPointerInfo with MemFlags for all pointer
type now.



Change-Id: I3c02b7b71ba0af953035e3ed9cd6bb6435bb9b65
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-07-29 21:10:38 -04:00
Philip Yang 413979c319 kfdtest: fix KFDIPCTest on gfx1xxx
hsaKmtAllocMemory with mflags.HostAccess=1 will fail on desktop gfx1xxx GPU
because it's small bar PCIe. Remove this flag.

Child process exit status should use current_test_info, not unit test
info.



Change-Id: I060f23aa98a42251921d003878e70a409c92a4de
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-07-29 21:10:17 -04:00
chen gong 860931557c libhsakmt: add cyan skillfish support
Signed-off-by: chen gong <curry.gong@amd.com>
Signed-off-by: Oak Zeng <Oak.Zeng@amd.com>
Change-Id: Ie26c2e156c9c4e68a6b36fe699adccf3f808b5e7
2021-07-29 16:44:16 -04:00
changzhu 3600cdfa01 kfdtest: blacklist some SVM test cases for gfx902 iommu path
Change-Id: I77f734df7ca65f2aa176548fd02ddac6036fe138
Signed-off-by: changzhu <Changfeng.Zhu@amd.com>
2021-07-29 00:02:57 -04:00
changzhu 1fe2225f52 kfdtest: take back SVM test cases for gfx90c
Change-Id: I28627f6eeaf9d213d7740849c6fadcccd91733c0
Signed-off-by: changzhu <Changfeng.Zhu@amd.com>
2021-07-28 15:44:02 +08:00
Philip Yang 426b94015c kfdtest: KFDIPCTest BasicTest query shared memory
Parent process alloc memory with specific HsaMemFlags, child process
import the memory handle exported by parent process, query shared memory
pointer info, verify it has same HsaMemFlags.

If child process test failed, exit with error code to notify parent
process.

Change-Id: I5c9534e931b4565186d27124868799b893504c81
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-07-23 10:08:28 -04:00
Philip Yang c3c1618db7 kfdtest: query userptr pointer alloc flags
Test if query userptr pointer info return correct alloc flags,
CoarseGrain by default.

Test if query hsaKmtAllocMemory pointer info return correct alloc
CoarseGrain flags.



Change-Id: If3a1175645717e5d7c475d6ff35b02d6876a1f7c
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-07-22 21:14:46 -04:00
Philip Yang db288df695 kfdtest: RegisterGraphicsHandle check CoarseGrain set
Register graphics memory should always coarse grain.



Change-Id: I9d056b41287fa63247a042e5530ba29d535173ea
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-07-22 21:14:46 -04:00
Philip Yang fa7b4a6268 libhsakmt: Qyery pointer info flags for registered memory
hsaKmtQueryPointerInfo return vm_obj flags for all below registered
memory types other than hsaKmtAllocMemory, and set the CoarseGrain flag
correctly for:

Graphics: always coarse grain.

Shared: hsaKmtShareMemory pass mflags with export handle to KFD to store
in KFD objs, hsaKmtRegisterSharedHandle get mflags from KFD with import
handle.

Userptr: it is already coarse-grain by default, or based on mflags
provided in hsaKmtRegisterMemoryWithFlags call.



Change-Id: Idc23e8b0cf599b02580737639da2f9ef4ccd0c0d
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-07-22 21:14:46 -04:00
Philip Yang 2c796e62be libhsakmt: Query pointer info returns HsaMemFlags
Query pointer info returns KFD_IOC_ALLOC_MEM_FLAGS_* flags, it should
return HsaMemFlags, fix it by renaming vm_obj->flags to mflags and
always saving HsaMemFlags.

Use consistent function parameter and variable name to avoid confusion:
mflags for HsaMemFlags and ioc_flags for KFD_IOC_ALLOC_MEM_FLAGS_*
flags.

AMDKFD_IOC_GET_DMABUF_INFO return ioc_flags, translate it to mflags
using new helper fmm_translate_ioc_to_hsa_flags.



Change-Id: If9e117c507139c0166abb1ab0df8c233ef7e48a1
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-07-22 21:14:46 -04:00
Aaron Liu 3d12437f1b libhsakmt: add yellow carp DID
Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Change-Id: If798dc733bc8d65c67922fb5d2e32aa1dada8381
2021-07-22 21:18:42 +08:00
Kent Russell ed62c7aa1c libhsakmt: Add gfx1032 DID
0x73E3 DID was missing, add it.

Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: Id1ae2f268e0e8b5cfec5ae2065153fe73854b93a
2021-07-22 07:37:19 -04:00
Philip Yang dee9c023a2 libhsakmt: update to KFD ioctl version 1.6
sync with KFD ioctl version 1.6:

1.6 - Query clear flags in SVM get_attr API

Change import export handle args pad field to flags, to pass memory
alloc flags from alloc process to import process.

Change-Id: I69360b244651947e885c4a8da9f64a1163101d20
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-07-21 21:48:18 -04:00
Icarus Sparry b63dde24d0 Add dependency on rocm-core
Signed-off-by: Icarus Sparry <icarus.sparry@amd.com>
Change-Id: I5f99114e9186679585862f05db8a508663b74b0d
Signed-off-by: Icarus Sparry <icarus.sparry@amd.com>
2021-07-21 15:57:54 -04:00
Kent Russell 4f3440a8ac Fix drm.h include path
kernel-headers provides the drm/drm.h path, while libdrm-dev[el]
provides the libdrm/drm.h path, which is what we want to use. Fix the
path so we use the newer drm.h header, as well as fixing SLES, which
doesn't provide drm.h in their kernel-headers.

Change-Id: Icb2b6643698d356169e3baeef17527a1b4e05483
2021-07-20 12:49:15 -04:00
Jonathan Kim 303c0748ce libhsakmt: add drm.h header dependency for sles
Update to thunk API introduced dependency on drm.h in commit
31ac82617c libhsakmt: update thunk api for exception handling
so update dependency list in SLES builds.

Signed-off-by: Jonathan Kim <jonathan.kim@amd.com>
Change-Id: I6d987fac07612e3eca7b6087205d76df50dc13d9
2021-07-19 12:48:13 -04:00
Jonathan Kim 1ce548829b libhsakmt: add runtime enable and disable calls
Add hsaKmtRuntimeEnable and disable.

Signed-off-by: Jonathan Kim <jonathan.kim@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Change-Id: I083f9293948e975546a1b3c1334cb41499b9ab1f
2021-07-16 18:37:41 -04:00
Jonathan Kim 31ac82617c libhsakmt: update thunk api for exception handling
The debugger and debug agent no longer use the Thunk API.
Remove all deprecated functions and keep commented
references for future KFD tests.

Update and the keep the version checks for future use
and hsaKmtRuntimeEnable/Disable.

Signed-off-by: Jonathan Kim <jonathan.kim@amd.com>
Signed-off-by: Laurent Morichetti <laurent.morichetti@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Change-Id: Ia2f10d82f5ac36d0bd1bda233810f26e8a154d55
2021-07-16 18:36:18 -04:00
Jonathan Kim 96c7a5c9dc libhsakmt: update create queue for exception handling
Update hsaKmtCreateQueue to initialize the new save area header with the
exception payload and event ID.

Signed-by-off: Jonathan Kim <jonathan.kim@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Reviewed-by: Sean Keely <sean.keely@amd.com>
Change-Id: Icd38062dc982cb29b30644699014eeb0b3e26d00
2021-07-16 18:34:35 -04:00
Felix Kuehling 5fac7dcc3b libhsakmt: Fix deadlocks in __fmm_release
__fmm_release is sometimes called with the aperture lock, and sometimes
without. Consistently call it with the aperture lock held and remove the
lock/unlock calls from this function.

Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Change-Id: I80dddc64cc0703e5eed8e9f1eb65b75a2c7ae2eb
2021-07-12 18:27:55 -04:00
Felix Kuehling 19536080a8 libhsakmt: Fix deadlock in map_mmio
Unlock mutex if MMIO mapping fails. This happens on all GFXv8 GPUs.

Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Change-Id: I1dee1cbddefd9185c24ea79377f49f8ae2c5ff57
2021-07-09 17:07:42 -04:00
Kent Russell bdfe3a12a8 kfdtest: Ensure devices are peer-accessible for peer mapping
If the devices aren't peer-accessible, we shouldn't try to run a test
that requires that the devices be peer-accessible. Thus, add a check in
MapVramToGPUNodesTest to check for peer accessibility before executing
the peer mappings.

Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: Ib79b141f8c1ac6d85f5ab49d62af62ec10b988b7
2021-07-09 15:45:01 -04:00
Philip Yang 92076f6f1b kfdtest: add KFDMemoryTest MultiThreadRegisterUserptrTest
Test Thunk multiple threads register and deregister same userptr race
condition, to emulate application register same userptr to multiple
GPUs using multiple threads.

Use thread barrier to sync the threads, to start register userptr at
same time.



Change-Id: I6723dc39f75908026fa14a490e39e1fe49a13a1b
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-07-07 17:52:31 -04:00
Aaron Liu ef9c532187 kfdtest: add yellow_carp blacklist
Signed-off-by: Chen Gong <curry.gong@amd.com>
Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Change-Id: Ib3a3172b0ac40109acbe42b9dc92517b3fedc84c
2021-07-07 09:47:05 +08:00
Aaron Liu a55551309c libhsakmt: add yellow carp support
This patch is to add yellow carp support on thunk.

Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Change-Id: Icfecc3fd1f472c9924f934c6a5352448356d83df
2021-07-06 21:46:28 -04:00
Aaron Liu fd131e875e kfdtest: MigrateLargeBufTest support APU
Limit test buffer size to 3/4 total VRAM size, and max 1GB.

Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Change-Id: I937e10b0a6bd8215e3865b50f22ce75b3982a6f7
2021-07-06 21:44:23 -04:00
Kent Russell b2fb2a3470 kfdtest.exclude: Add NV12 blacklist
Add a blacklist for gfx1xxx12, using the same list as gfx1012

Change-Id: I7e620dba8a36f6f89152a48066234884150a15dd
2021-07-06 11:58:53 -04:00
Sean Keely 408fca0278 Add error message to assertion.
Warn that HSA_FORCE_ASIC_TYPE may be needed if the engine major id
assertion fails.

Change-Id: I67e01e99c3d1bdc84630ccfae489dce5e77961b5
2021-06-28 23:18:43 -04:00
changzhu 1a9604ad57 kfdtest: skip KFDSVMRangeTest.MigrateAccessInPlaceTest for gfx902 and gfx90c
Change-Id: I671440c212a07fdfdb1c4245b4551c6344eaedc6
Signed-off-by: changzhu <Changfeng.Zhu@amd.com>
2021-06-28 13:37:52 +08:00
Philip Yang c4d5ee28f0 libhsakmt: fix multiple threads register userptr race
Aperture locking is too fine-grained, it has race between find userptr
and allocate userptr object.

Change _fmm_allocate_device and fmm_allocate_memory_object to not take
the aperture lock, the callers take it, this implements an atomic find
userptr or allocate a new one.



Change-Id: I6773404e22c1f4382a211c5a9817df23c5534a2a
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-06-25 14:16:20 -04:00
Kent Russell 5796225011 kfdtest: Remove EvictTest.BasicTest from gfx906
This is causing PSDB/OSDB failures so disable it until investigation is
done

Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: I666cd45fdf8ae585486adc7cf43eacd1700704bb
2021-06-17 17:07:22 -04:00
Philip Yang 351a41ac76 kfdtest: add KFDSVMRangeTest MigrateAccessInPlaceTest
To test ACCESS_IN_PLACE GPU mapping update to system memory.

Change-Id: I5b990215f39692e829128d848125e1ae0d571e03
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-06-14 11:03:09 -04:00
Alex Sierra f85b428265 libhsakmt: move CoherentHostAccess prop to HSA_CAPABILITY
CoherentHostAccess flag member moved from HSA_MEMORYPROPERTY
to HSA_CAPABILITY struct. Now this is reported to the
topology as a capability of the device instead of a device
memory property.

Change-Id: I48e43e4b4a0635b711b62933734587facdfbf88b
Signed-off-by: Alex Sierra <alex.sierra@amd.com>
2021-06-10 22:21:17 -05:00
Yifan Zhang c24ed10dfa libhsakmt: add colon after KFDQMTest.SdmaConcurrentCopies
Signed-off-by: Yifan Zhang <yifan1.zhang@amd.com>
Change-Id: Ief14e513e4b09db0607f5533a55f80d3b0be017e
2021-06-07 18:21:59 +08:00
Yifan Zhang e72be0e54d kfdtest: Temporarily blacklist some svm related test cases for gfx902.
move blacklisted test case from gfx902 iommuv2 to dgpu path.

Signed-off-by: Yifan Zhang <yifan1.zhang@amd.com>
Change-Id: I8b101226ca8dcd0c12c484f5f6ce12fe73a75bdc
Signed-off-by: Yifan Zhang <yifan1.zhang@amd.com>
(cherry picked from commit 9cf4377572321396225950b9a58beb549120c2a3)
2021-06-06 23:07:29 -04:00
Alex Sierra 973b35bc06 libhsakmt: change memory allocation alignment
it is to optimize memory allocation latency, which
changes alignment from 2MB to 1GB.

Signed-off-by: Alex Sierra <alex.sierra@amd.com>
Signed-off-by: Eric Huang <jinhuieric.huang@amd.com>
Change-Id: I7818e9f13b17e2c0992e75b17f978dc03a018a57
2021-06-01 11:33:16 -04:00