Γράφημα Υποβολών

2445 Υποβολές

Συγγραφέας SHA1 Μήνυμα Ημερομηνία
Philip Yang 88e6921d45 kfdtest: MigrateFileBackedRangeTest address sanitizer builds failing
Use alloca to replace variable size array.



Change-Id: I81e5a7d8f6ace203b81f5f5a651b2a6aa948821c
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-09-16 10:51:56 -04:00
Kent Russell f2f86591b6 kfdtest.exclude: Remove KFDSVMEvict from GFX10
This was never validated on GFX10, so remove it for now until it's
either validated and confirmed, or move the check to the test itself

Change-Id: Ie4d8b31885fbe6e5ed84b7b174c0bfed60879741
2021-09-15 11:34:05 -04:00
Yifan Zhang db1d6d92ab libhsakmt: dump errno the queue destroy fails.
to faciliate debugging, print errno when queue destroy fail
current log give very little information when fail:

[ RUN      ] KFDQMTest.AllSdmaQueues
 [          ] Regular SDMA engines number: 1 SDMA queues per engine: 2
 [       OK ] KFDQMTest.AllSdmaQueues (11 ms)
 [ RUN      ] KFDQMTest.AllXgmiSdmaQueues
 [          ] XGMI SDMA engines number: 0 SDMA queues per engine: 2
 [       OK ] KFDQMTest.AllXgmiSdmaQueues (6 ms)
 [ RUN      ] KFDQMTest.AllQueues
 /home/foreman/build/hsakmt-roct-amdgpu-1.0.9.40500/sources/libhsakmt/tests/kfdtest/src/KFDQMTest.cpp:381: Failure
 Value of: (cpQueues[i].Destroy())
   Actual: 1
 Expected: HSAKMT_STATUS_SUCCESS
 Which is: 0

Signed-off-by: Yifan Zhang <yifan1.zhang@amd.com>
Change-Id: I5b1b5b616a5fd7ff198360c893a7aeed685022bd
2021-09-15 04:34:58 -04:00
Oak Zeng 80206af91e Add gfx1013 support
Change-Id: I7122caea3ef2254b50bde25ec545116685452116
Signed-off-by: Oak Zeng <Oak.Zeng@amd.com>
2021-09-15 01:10:20 -04:00
Sean Keely 8d789461bf Add gfx1013 to rocrtst.
Change-Id: I49c4aafc661d7c2ba6fd6baa006bf698b0af5274
2021-09-14 22:55:43 -04:00
Sean Keely 5af558f739 Place GPU local resources in nearest NUMA node.
For minimal latency we should place command queues and blit code
in the nearest numa node to each GPU.  Add an allocator matching
the current runtime default allocator interface to each GpuAgent
that allocates on the closest numa node as represented by kfd
topology.  Use this allocator for queue ring buffers and blit
objects.

Change-Id: I181127f9c27bafe68976312963146616e3f58369
2021-09-14 17:49:24 -04:00
Philip Yang 8f7443494a libhsakmt: fix multiple threads register userptr race v2
After calling ioctl to create userptr obj, take aperture lock, check if
there is same userptr obj created after finding object, to catch the
race that multiple threads register same userptr to multiple GPUs.

If same userptr obj exist, then increase userptr registeration_count,
and free the newly create obj.

Change-Id: I63ae3a4f54da8aedd11c124d8d53ebe727b8203a
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-09-14 12:36:36 -04:00
Philip Yang a809a5bf32 Revert "libhsakmt: fix multiple threads register userptr race"
This reverts commit c4d5ee28f0.

Change-Id: I954326d9a291280de7c9b7ef49a8cce0cd9dd9ad
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-09-14 12:36:36 -04:00
Philip Yang 91b0fce535 Revert "libhsakmt: Fix deadlock in map_mmio"
This reverts commit 19536080a8.

Change-Id: Ibd32ac36bcb9ee418957d25b240ef9dd9172fbd3
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-09-14 12:36:36 -04:00
Philip Yang 445fcd803b Revert "libhsakmt: Fix deadlocks in __fmm_release"
This reverts commit 5fac7dcc3b.

Change-Id: Idf636655ac01f569d8e92e9c0e100e5db7d1cb61
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-09-14 12:36:36 -04:00
Philip Yang f9648c5014 kfdtest: add KFDSVMRangeTest ReadOnlyRangeTest
Map readonly range to GPU, test GPU can read range but write to
range trigger GPU vm fault.

Change-Id: Id2ce106055a353f21f4c34fa7f562d546523bc49
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-09-14 12:36:35 -04:00
Philip Yang d91f92669b kfdtest: add KFDSVMRangeTest MigrateFileBackedRangeTest
To test if SVM support address mmap on file backed memory.

Change-Id: I227cc0b44d167c4fa2e63257e13a481aefa4f750
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2021-09-14 11:59:23 -04:00
Kent Russell 268bb1ae84 Revert "Revert "Get Marketing name from libdrm-amdgpu""
This reverts commit 89c9d6a3b9.

Reason for revert: aqlprofile has merged

Change-Id: Iee0fbe8ac1e475123273b328949f68f10490d3ca
2021-09-01 07:44:23 -04:00
changzhu 978028d3f6 libhsakmt: fix KFDOpenCloseKFDTest.OpenAlreadyOpenedKFD Segmentation fault on gfx902
g_props is intialized in topology_take_snapshot which needs to call
hsaKmtAcquireSystemProperties. In hsaKmtOpenKFD, it doesn't call hsaKmtAcquireSystemProperties.
So it needs to change parameter of topology_is_svm_needed from node_id
to EngineId to avoid Segmentation fault on gfx902.

Signed-off-by: changzhu <Changfeng.Zhu@amd.com>
Change-Id: Iba8d20a9142510c70927454d26bdcaf579ad5574
2021-08-31 22:57:24 -04:00
Kent Russell 89c9d6a3b9 Revert "Get Marketing name from libdrm-amdgpu"
This reverts commit cb1c84d99b.

Reason for revert: aqlprofiler hasn't promoted yet

Change-Id: I9e6a4169f014a6181f43ee8ef4810be2667d98bd
2021-08-31 09:11:51 -04:00
Chengming Gui bcd49af8bb libhsakmt: Add new DIDs for gfx1030/gfx1031/gfx1032
Signed-off-by: Chengming Gui <Jack.Gui@amd.com>
Change-Id: Iddb27ce2bedda9a57944eca1e2bb93001e61f733
2021-08-30 23:17:45 -04:00
Jinzhou Su 294086096a libhsakmt: Add another gfx90c DID
Add pci device ID.

Signed-off-by: Jinzhou Su <Jinzhou.Su@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Change-Id: Idcf8e99583fc9991a0d71d1e0d7e741a132ed730
2021-08-30 22:49:02 -04:00
Sean Keely 907679c989 Register the default queue error handler for all internal queues.
Also make failure to handle queue errors fatal.

Motivation is to improve detection of queue error conditions
that currently appear as application hangs.

Change-Id: I655643616dc0bd303d7df3ce8aca2c099bec3d46
2021-08-27 20:11:58 -04:00
Sean Keely 9e7d4629ca Add check_required_components to end of cmake package file.
Sets package found and component lists.  ROCr does not have components
so this is mostly cosmetic.  It's part of maintaining a compliant
cmake project config file though.

Change-Id: Ida2ef746375143babd3a6f938727a47135606f01
2021-08-27 20:07:26 -04:00
Sean Keely e06dd39d89 Correct queue exception hander termination.
Set handler state to terminated before exiting.
Also simplify scratch handler exit loop.

Change-Id: I0a80c8a1899e8b60a6e7aa6989ba28de42ba31e7
2021-08-27 20:06:44 -04:00
Sean Keely 76e6ff0411 Minor spelling fix in comments.
Change-Id: Ia99ac3f75444675be48b3d965552fab79da37c92
2021-08-27 20:06:17 -04:00
Sean Keely eec545fd9f Build fix for older clang compilers.
Per clang 13 option -Wno-error=unused-but-set-variable is not
recoginized nor is the diagnostic emitted.  Set this option
conditional to the clang compiler version.

Change-Id: I3c0958dffa985d53b641f9eff4e702988dffd033
2021-08-27 20:06:10 -04:00
Sean Keely 02666ec0f1 Allow passing zero bits into hsa_amd_queue_cu_set_mask.
Passing 0 into num_cu_mask_count used to be an implicit error.
This has been repurposed as a short hand for enabling all CUs.
Enabling all CUs when HSA_CU_MASK is set will cause the CU mask to
reset to whatever was set by HSA_CU_MASK which may then be queried.

Change-Id: I1d6bb2034595a78ee48fa72aa05563e8ea6c0fff
2021-08-27 20:05:24 -04:00
Sean Keely 2aa0795b33 Improve HSA_CU_MASK parsing efficiency.
Delay parsing until after GPU discovery.  Use the surfaced
GPU count and maximum phyiscal CU count to limit parsed bit masks.

This prevents pathological input such as
HSA_CU_MASK=0-8000000:0-8000000 from attempting to consume 7TiB.

Change-Id: I3773d2db3740c2023b0f6275d1818b69119b0495
2021-08-27 20:05:18 -04:00
Kent Russell af31e9364a CMakeLists: Make sure package provides hsakmt-roct for RPM
RPMs were missed initially

Change-Id: Id9d3fdcb41a25db90c9de71e2035de61928e9a32
2021-08-27 07:47:20 -04:00
Mike Li cb1c84d99b Get Marketing name from libdrm-amdgpu
Use the database provided by libdrm-amdgpu,as this is maintained by AMD

Signed-off-by: Mike Li <Tianxinmike.Li@amd.com>
Change-Id: I319a46d833cb23173a77fdff1deae69ea58588b8
2021-08-26 16:43:31 -04:00
Kent Russell 79d00a35f9 CMakeLists: Combine binary and devel packages
Consolidate all thunk components into a single development package
Also declare build dependencies via find_package/library and report the
location of said dependencies during build time

Change-Id: I8524ad1a2d9a664accd93471abacc4bac82b9a7c
Signed-off-by: Kent Russell <kent.russell@amd.com>
2021-08-26 14:38:10 -04:00
Tony Tye d0ae4b1f3f Update HSA_RUNTIME_ENABLE_MIN_MAJOR to 10
The major version of the debug ioctl functions has been updated to 10.

Change-Id: Iddc8656ad07c92aa30c6a7a99add28ab3a3f5a80
2021-08-21 21:47:09 +00:00
Mukul Joshi acd5eda54f kfdtest: Update KFDCWSRTest for software scheduler and MES
Update KFDCWSRTest.BasicTest to run CWSR test with legacy HWS,
MES, and software scheduler.

Signed-off-by: Mukul Joshi <mukul.joshi@amd.com>
Change-Id: I09af904507109c2bbbace6ff616a57fa2b1b8aa9
2021-08-20 16:37:50 -04:00
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
Sean Keely 7512c32f69 Add emulator build notification to rocrtst.
Change-Id: I3eb5fd5ec26541f3459aebf289d25c942f09da02
2021-08-13 16:46:26 -05: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
Sean Keely 270d042ef8 Minor interface improvement to pointer info.
Take in const void* rather than void*.  This does not break the
abi or existing code.  Existing code would need to cast away any
const which is unnecessary and annoying.

Change-Id: I28787e8fab1b600bf6871ea82835e10a4f475c5b
2021-08-04 16:43:23 -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
Sean Keely ed7eec14e1 Update README and increment minor version number.
APIs have been added and minimum cmake version number has been
changed.

Change-Id: Ic75849e6937c04faed2d206344df2cf9e9a78016
2021-07-30 17:13:17 -05:00
Sean Keely 4907d4577b Add optional dependency on rocm-core.
Part of uninstall sanity changes.

Change-Id: I29f16470deb87e67050339f10bfb7cc1b5f9c1b2
2021-07-30 16:39:37 -04:00
Sean Keely 471c1859ab Simplify RPM package building.
The need to run rpm outside of cpack seems to have passed.

Change-Id: I8d7d992e289a0a88fa11b57bf0401bc6740c266b
2021-07-30 16:39:32 -04:00
Sean Keely e8439cca08 Remove unused branches from DEB packaging scripts.
Branches are unused and emit noise to the console when running
commands for which we have no actions.

Change-Id: I1f8c49a20bd7f529172721f35d29665cfc8dc6a4
2021-07-30 16:39:25 -04:00
Sean Keely 081ab00f8e Correct hsa_status_string strings.
Some strings were missing the human readable form of the error code.
Also unifying source formatting via clang-format.

Change-Id: I0bcc2ab77dda476904c684cc2c584a5c7e8230d4
2021-07-30 16:30:31 -04:00
Sean Keely 62b7c0ed3b Add missing HSA_STATUS_ERROR_INVALID_MEMORY_POOL string.
HSA_STATUS_ERROR_INVALID_MEMORY_POOL was missing from
hsa_status_string.

Change-Id: I9a9121d54a61f966d87081a55638397473bddbe4
2021-07-30 16:30:25 -04:00
Sean Keely a0069904c8 Minor correction to debug messages.
Added missing \n.

Change-Id: I6e17459390c2c18819fc1decd8a6c91b7d7409cf
2021-07-30 16:30:18 -04:00