The option to use kfd_fd for cpu mapping is for very old broken KFD
version, it is not used in upstreaming process. This causes issue when
multiple process uses shared system memory because the GTT address is
over 40 bits.
Change to always use render node fd to create CPU mapping.
Change-Id: Id7e7b2a2e2f13c6e62c5de170589abfff4d456b0
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Using mordern cmake changes for rocrtest in accordance with the
recent changes in HSA. These changes also make sure that tests
can be compiled both for static as well as dynamic libs
Change-Id: I6dfb5259a4cbd994f413f68d1ebadc2ba5fe4f34
Following Cmake changes are in accordance to the changes in HSA / THUNK , VDI etc
These have made the code compilable now both for satic as well as dynamic libs
Change-Id: I4d8d3e2b84d6e1ea00531594522111ccbce8a87b
Make explicit reference to hsa_api_trace.cpp from
initialization of hsa_table_interface.cpp. Breaks
the ability to use hsa_table_interface.cpp in plugins.
Change-Id: I22a42d3a132512b0d9ec7a1ca629b169e7f8eba7
Rather than manually linking to the device libraries, the compiler
can now handle linking with them. Allow the build to continue using
old layout if the build system still uses it. Therefore maintain
compatibility with ROCm 3.7 and earlier.
Change-Id: Ida81775da3d0f7c2c67386a71cb057ede31a1545
The excess declarations mark implemenation functions as default
visibility. Normally this is not an issue since our linker script
will specify which visible symbols will be permitted into the dynamic
symbol table. However, for static linking methods which apply linker
directives during incremental linking symbol visibility must be correct
in the (non-dynamic) symbol table.
Change-Id: I13dc8dd1019368e8943920d36335a91f0c555a92
The size of the m0 payload for MSG_INTERRUPT has changed in gfx10. It is
now 23bit wide instead of 24bit wide in gfx9.
Since we are generating different binaries for gfx9 and gfx10, we can
conditionally set DEBUG_INTERRUPT_CONTEXT_ID_BIT to 23 for gfx9 and
22 for gfx10.
Change-Id: Ifc15a9fa4399d35328ab58b742f791f1660bcd9a
This reverts commit d675d1cce1.
Reason for revert: Change was submitted by accident
Change-Id: If05c705e22296fd3ca789f269737d379a933361d
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
- Make code object reader use mmap when loading from a file on Linux.
- Support computing code object URI for memory either fro the loaded
host executables, or from all mmapped files. Define the environment
variable HSA_LOADER_ENABLE_MMAP_URI to non 0 to search the mmap
files, otherwise only the loaded executables will be seatched.
- For mmap search, determine file size and ommit offset and size URI
fragment when the code object is the whole file even when specifying
a file size explicitly or specifying memory that has been mmaped.
- Always return a non-empty code object URI.
- When a code object reader is created, complete all fields to ensure
it can be used in a multi-threaded manner using only const
operations.
- Add missing exception handlers in the AMD vendor extentions.
- More rigorous checking for errors.
Change-Id: I07797b1dc60c5c64245142d77becf9f7c9643395
Since CMAKE_MODULE_PATH can already be set by another project,
we should just append the libhsamkt cmake module directory to it.
Change-Id: I999dc52a2862e4bbff02e0a8e8b39530f4dae2cd
Signed-off-by: Vlad Sytchenko <vladislav.sytchenko@amd.com>
We should preserve the queue address and queue size when suspending a
queue. The ROCdbgapi gets all its information from the KFD, and if we
reset the queue properties, a call to queue snapshot will not return
the correct information.
Change-Id: I646ed4a779cada55b0c1b4342ec140d3678beb67
Static and dynamic builds should both output libhsa-runtime64.??
Current code produces libhsa-runtime64_static.a.
Change-Id: Ibf1983f560cd069b33d98fec432e3174a17d8d6c
Dependency changes between static and dynamic build caused a cmake
crash when using ccmake or cmake-gui. This is fixed by cmake in
version 3.12. Until then deleting the target dependency data at
project startup allows the UI to function correctly.
Also warns about cosmetic issues when using older cmakes.
Change-Id: I8bd2ade9b59e7c27652090d1b6298cb01095a965
Interface target now depends directly on rocr dependencies and
indirectly on the rocr source target. This duplicates some code
but seems to be necessary to restrict application of whole-library.
Change-Id: I35e836de38aad1eee5387531362871293e30da9d
Static linking disregards module initializers. This breaks clocks
and the API table. The patch adds an interface target during
static build that wraps the archive in --whole-archive to avoid
incomplete initialization.
Change-Id: Id32afbf969c1f3f16a191e5b2b66847669165fb7
libelf does not natively support cmake packages and is not located
by cmake's default system library modules.
Change-Id: I4e7cda32615febf9f45ccc15f4e2a3f3505804bb
For static linking all non-API functions must have internal linkage
or be in project namespace to avoid colliding with application symbols.
Change-Id: I3398e40a387cca36f3ddef2b978306c765161d72
Default is OFF to conform to latest cmake standard (3.15) and
because this feature can cause some confusion for unaware developers.
Change-Id: I00f9ec2185c27d2f6a8d2c7f294512a268a4e3f5