Граф коммитов

91 Коммитов

Автор SHA1 Сообщение Дата
Jeremy Newton aa25cb1acc Fix numa linking
We should link against numa without hardcoding the path to it.
CMake should determine how to link numa automatically, similar to how rt
and pthread is linked.

Fixes 

Change-Id: Ifb9ac30e200c66cbd7f1cf80d25fffef1dcf8d2f
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
2022-07-14 11:04:09 -04:00
Ranjith Ramakrishnan 707200e26e : Use GNUInstallDirs
Use GNUInstallDirs variables in post install scripts
License file installed in CMAKE_INSTALL_DOCDIR

Change-Id: I182ca292e03787a6c189e8de31d32244b65b5687
2022-06-01 10:32:19 -07:00
Kent Russell 65aec53bca CMakeLists.txt: Remove unneeded dependencies
These were required back due to dependency issues in earlier ROCm
releases. With thunk being static now and with better dependency
definitions being used, we can remove these

Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: I266a783993edf32811caf027f4289ede0cbfcb16
2022-05-13 09:21:48 -04:00
Ranjith Ramakrishnan 5f2c75b7d6 File Reorganization with backward compatibility
Header installed in /opt/rocm/include/hsakmt
Wrapper header files for backward compatibility

Change-Id: I5f6ccac996a43a7c20e0f75e48b1c55b610f0a16
2022-05-06 19:11:42 -04:00
Jeremy Newton 3f90750304 Just install license into /opt/rocm*/share/doc
This is causing issues with side by side, sorry for the noise.

This license location isn't ideal but it's good enough for now.

Change-Id: Iba2a84cedf22466fdaaf3c63b6ea49c9fc277967
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
2021-12-02 10:04:51 -05:00
Jeremy Newton 348a3613d6 Fix side-by-side copyright file
The copyright file will conflict if multiple thunks are installed. This
should resolve the issue by adding the version to the install path.

Change-Id: Ieac5a3eba979b3e934fb9100f890b92fc7c35d71
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
2021-11-25 15:59:18 -05:00
Jeremy Newton 7649cd862e Fix packaging of license file
CPACK doesn't have proper logic for installing the license as described
by CPACK_RESOURCE_FILE_LICENSE.

For Debian packaging, the license is expected to be installed as:

/usr/share/doc/PACKAGENAME/copyright

To do this, I've added a bit of logic for CPACK to copy this into the
package using CPACK_INSTALL_COMMANDS to prep the directory, and
CPACK_INSTALLED_DIRECTORIES to add it to the package. This applies to
both RPM and DEB, so I've added some logic to the spec file to exclude
this file (note that CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION does
not work for files installed with CPACK_INSTALLED_DIRECTORIES).

For RPM install, I've just added a small bit of logic to the spec file
to handle it. The file needs to be copied into the spec working
directory, then a macro is used to handle the rest. Note the license
macro does not work on EL6, but I don't think we want to support this.

Change-Id: I06ce63d300419893cb8274bc504a15633e304d91
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
2021-11-18 16:41:48 -05:00
Jeremy Newton 529c96c08b Fix to previous commit
I used the binary directory instead of the source directory to specify
the spec.in path, which passed local testing since these directories
are in the same location. This is not guarenteed to be true.

Change-Id: I1b49ca8453b9c074a947104c26fb39667d728a8e
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
2021-11-17 17:47:53 -05:00
Jeremy Newton 3c0e4fee0f Implement RPM recommends for libdrm-amdgpu
CPack does not support recommends for RPM generation, so I've generated
a template RPM SPEC files in order to make modifications to allow for
support of recommends.

The spec.in file was generated using the cpack option
"CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE" and was modified very
sparingly to avoid any maintanance burden, e.g. can be easily
regenerated. The CPACK_RPM_USER_BINARY_SPECFILE is then used to specify
the customized template file, instead of using the cmake's template.

From what I understand, the point of these two options is to allow
developers to tailor the specfile to their desire, since rpm spec files
are much more advanced then the equilivent debian file.

Change-Id: I80c69be58a3c57729ed997fd2ce01f5d16b9e9b9
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
2021-11-17 11:57:55 -05:00
Jeremy Newton 86c27a7af8 Use recommends for libdrm-amdgpu-amdgpu1
For the use of libdrm-amdgpu-amdgpu1 and libdrm-amdgpu, we should use
recommends, as we want these packages installed with a strong dependency
but avoid a strict dependency, since this is enhancement feature.

Using the newer libdrm, which is build for amdgpu-dkms, is ideal since
it will produce more correct marketing names, but should not be mandated
due to two reasons:
- A user may not want to install both libdrms on their system
- The system might not have the newer libdrm available

This patch only fixes the Ubuntu/debian package since recommends is not
properly implemented for the RPM generator for CPACK. For now,
"suggests" will have to do, since it's the closest option we have. I
will investigate if we can get around this issue.

Change-Id: I33a90c3ead235bbbe265238c026933688ea63fe3
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
2021-11-16 11:08:40 -05:00
Kent Russell e842d7f480 Revert "CMakeLists: Fix libdrm-amdgpu dependencies"
This reverts commit 9529bf7063.

Reason for revert: Infra still not ready for it yet

Change-Id: I03e043c1ca7924264e3e70e3e82c73b4efc2ae75
2021-11-12 14:30:04 -05:00
Kent Russell 9529bf7063 CMakeLists: Fix libdrm-amdgpu dependencies
SUGGESTS doesn't get installed by default by dpkg, it requires
--install-suggests. While the libdrm-amdgpu-amdgpu1 lib might not be
critical to core thunk usage, it's necessary enough to increase the
dependency from weak to strong, thus we use RECOMMENDS instead

Since CPack doesn't support RECOMMENDS for RPMs, and SUGGESTS isn't
strong enough, we just set it as REQUIRED. This should handle any
standard installation situations instead of trying to be fancy to try to
make things exactly the way we want them to be.

Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: I5a676fb4a3fbf5c7b35f503acc30cf01c056266d
2021-11-10 17:23:31 -05:00
Jeremy Newton fa2309fcdd Set License field for RPM package
This really should be set to conform to distro standards.

Change-Id: I63442b9ad58f70c4691c499b666f7c359dc9609d
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
2021-11-10 13:56:33 -05:00
Kent Russell 7e90eef254 CMakeLists: Refer to libdrm-amdgpu1 for RPM distros
The infra is in place to make sure that we can get around the issue
where older versions of rpm don't know what "Suggests" is. Using the
HSAKMT_REQUIRES_LIBDRM variable will force the package to require
libdrm-amdgpu1 instead of just suggesting it in newer distros.

Change-Id: I5d595c4e4be5ad8e8c411dcec3a58365e1984f05
2021-11-03 13:44:48 -04:00
Kent Russell f7e90798a0 CMakeLists: Refer to libdrm-amdgpu1 for DEB
This is required for Marketing Name, but Marketing Name isn't a hard
requirement for ROCT, so make it a Suggested package for DEBs.

Adding a commented-out possible solution for RPM-based distros, as
unfortunately SLE <10 and CentOS/RHEL <8 don't know what "SUGGESTS"
means. Potentially we will add a check that the build environment
that determines if we require the REQUIRES field to be used.
Hopefully we can work out the RPM side quickly, but for now enable
SUGGESTS on DEB as a start

Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: Icea689a14c185964e7f47fb23ee432f9b35ccb03
2021-10-14 13:20:29 -04:00
Aakash Sudhanwa 06b1f25172 Revert "CMakeLists: Make libdrm-amdgpu1 a suggestion"
This reverts commit 4144a0d2a4.

Reason for revert: Breaking on Centos7

Change-Id: Ibd5a7c5d4e8c07defec45821ae1faa525cfc916d
2021-09-24 16:35:53 -04:00
Kent Russell 4144a0d2a4 CMakeLists: Make libdrm-amdgpu1 a suggestion
This is required for Marketing Name, but Marketing Name isn't a hard
requirement for ROCT, so make it a Suggested package

Change-Id: Ibafcce2c59dc8bdba90c171e766122bebf548a48
Signed-off-by: Kent Russell <kent.russell@amd.com>
2021-09-17 10:11:45 -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
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
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
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
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
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
Felix Kuehling dd72f236c1 libhsakmt: add SVM thunk implementation
Implement SVM (Shared Virtual Memory) in the thunk.

Change-Id: I0380150d1d3da48070f9389a06f416d6059d6948
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Signed-off-by: Sean Keely <Sean.Keely@amd.com>
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Sierra <alex.sierra@amd.com>
2021-04-16 00:10:25 -04:00
Kent Russell d748d6dce7 CMakelists: Build thunk as static by default
This can be overwritten by changing BUILD_SHARED_LIBS=true, but we
default it to static to allow for merging into ROCr

Change-Id: Ic286ef7903a5bc788fe3b84bb13b15bdd3a6f60b
2021-04-08 14:38:20 -04:00
Roberto Di Remigio b6d613d284 Treat link flags as a string, rather than a list
Fixes linking failure with gold

Change-Id: Ie9d2a7f68e71a0a793b041d57b8078ead22a93c8
Signed-off-by: Roberto Di Remigio <roberto.diremigio@gmail.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
2021-04-05 13:18:33 -04:00
Cole Nelson a9ce8683eb CMakeLists.txt: add ENABLE_LDCONFIG to support multi-version install
Depends-On: I58fdf1d0b4e864b5a61ffe8e335d430d424811ab
Change-Id: I8e3e873fde99eaec79651ce6c3581870e9c2112d
Signed-off-by: Cole Nelson <cole.nelson@amd.com>
2021-03-27 15:27:55 -07:00
Felix Kuehling 4ebda913cd Revert "libhsakmt: add SVM thunk implementation"
This reverts commit 75e8fe383f.
SVM is not ready yet. This was merged by accident.

Change-Id: I372f7d293fd38429ec570bc0e0add7e612871594
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
2021-03-10 22:33:34 -05:00
Kent Russell 83d80074f7 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
2021-03-02 07:48:22 -05:00
Alex Sierra 75e8fe383f libhsakmt: add SVM thunk implementation
Implement SVM (Shared Virtual Memory) in the thunk.

Change-Id: I0380150d1d3da48070f9389a06f416d6059d6948
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Signed-off-by: Sean Keely <Sean.Keely@amd.com>
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Sierra <alex.sierra@amd.com>
2021-02-23 12:20:29 -05:00
Kent Russell bb7e7df02a Remove extra brace, use libsan vs libasan
Change-Id: I82e0d4fc8ea7dc292def7485bcf53c3849442c47
2021-01-14 07:51:23 -05:00
Kent Russell c742764d01 Merge address sanitizer branch into amd-staging
Merge in topic branch to enable address sanitizer and CLANG compilation
support into amd-staging branch

Change-Id: I3fcd24c6fac83d0619bef4cbbc56fd95e9fb009d
Signed-off-by: Kent Russell <kent.russell@amd.com>
2021-01-06 11:50:54 -05:00
Kent Russell 1290d4d56c CMakeLists.txt: Use %{dist} in RPM naming
The %{dist} suffix is part of the package name due to
CPACK_RPM_PACKAGE_RELEASE_DIST, but the string provided to the
"REQUIRES" field lacks it. Add it in here so the devel package can
reference the thunk package correctly. Use a nice function suggested by
Cole since CPACK_RPM_PACKAGE_RELEASE_DIST has caused some infra issues
in the past

This works for packages build in both Ubuntu and CentOS
Also fix a mistake in the naming for DEBIAN packages, which should be a
no-op since both the DEBIAN and RPM PACKAGE_RELEASE variables are the
same right now

Change-Id: I70659d2e1b6ff9027b8564ca4366d81b0c164760
Signed-off-by: Kent Russell <kent.russell@amd.com>
2021-01-06 08:06:49 -05:00
Kent Russell 3c8273c57b libhsakmt: Explicitly set shared/static sanitizer flags
Don't rely on default values for static/shared sanitizer flags, set them
explicitly based on whether BUILD_SHARED_LIBS is defined or not

Change-Id: Ifbfe95269d1cf184237643176a033a3ce98b62f9
2020-12-24 10:32:01 -08:00
Kent Russell f6f47aa43d Remove address-sanitizer debug messages
Change-Id: I08509aaed36459329f0a65264e42f287c27f4a18
2020-12-24 10:32:01 -08:00
Kent Russell 8e0a9aa417 Set -no-undefined properly if it's CC
Address-sanitizer doesn't like it at all. And it's called differently
under clang than gcc, so adjust accordingly

Change-Id: Iebe8cd68618d3f7a4c310419c64b4f73d7ecfda4
2020-12-24 10:32:01 -08:00
Kent Russell 3d9f60d7fe CMakeLists: Address-sanitizer fix and cleanup
Move all the logic into 1 spot, and make sure -fsanitize=address is also
passed to the library flags

Change-Id: I7b60629d32df6436b5c7ad37997fe14ea48f5d72
2020-12-24 10:32:01 -08:00
Gefei Jiang d3bc75d229 CMakeLists.txt: Address Sanitizer Support
1. add sanitize flag to link flags
  2. use ${ADDRESS_SANITIZER} as a condition to turn on/off
     instead of (DEFINED ADDRESS_SANITIZER).
     The latter will always turn the feature on regardless of
     the value as long as there is "-DADDRESS_SANITIZER in
     cmake command line,which will be an issue when merging to
     the mainline
Amended: put -fsanitize=address at the begining in link flags

Change-Id: I84df0e5b6d7fb8f02f18bf7961f25f15cac10443
Signed-off-by: Gefei Jiang <gefei.jiang@amd.com>
2020-12-24 10:32:01 -08:00
Gefei Jiang b92d28bd71 CMakeLists.txt: Address Sanitize Support
ROCMOPS-1249
	correct if statement and -f flag name

Change-Id: I92e9aa30b1c81f855ad269c0c686ec1e136a85fd
Signed-off-by: Gefei Jiang <gefei.jiang@amd.com>
2020-12-24 10:32:01 -08:00
Gefei Jiang f0e6e7ae17 CMakeList.txt -- Support Address Sanitize
ROCMOPS-1249
	append address sanitize flag

Change-Id: Ie5d1e5b8b93022b80e0ca74106a16d53d52e41af
Signed-off-by: Gefei Jiang <gefei.jiang@amd.com>
2020-12-24 10:32:01 -08:00
Aakash Sudhanwa ac6e96e7a3 Revert "CMakeLists: Fix RPM dependency declaration"
This reverts commit 089fdeb1fe.

Reason for revert: <INSERT REASONING HERE>

Change-Id: Ieaf2da0067c3e89577569c5d478c70b97ca5f5ca
2020-11-17 20:10:45 -05:00
Kent Russell 089fdeb1fe CMakeLists: Fix RPM dependency declaration
RPM needs _REQUIRES at the end, not _DEPENDS, and also requires a space
before the version of the required package.

Change-Id: I9dd70bd92fc2407b7e8b31e4d46df43c52438a65
Signed-off-by: Kent Russell <kent.russell@amd.com>
2020-11-17 12:36:05 -05:00
Gang Ba e8c0426c54 libhsakmt: add Streaming Performance Monitors APIs
Signed-off-by: Gang Ba <gaba@amd.com>
Change-Id: Iab9a98fa2079b7cae7158c524479dfc3fa672407
2020-11-16 16:36:21 -05:00
Ashutosh Mishra aefc173da4 Standardizing Package names
: Enables standards compliant package naming for debian and rpm

Signed-off-by: Ashutosh Mishra <ashutosh.mishra@amd.com>
Change-Id: I177af15ec7a3f909d05135be30a0acc7b0b20745
2020-11-11 00:37:20 -05:00
Kent Russell 0a4b23d625 Fix lintian errors in deb packages
Add extended descriptions and e-mail address to CMakeLists
A lintian error will remain regarding stripping the .so, as we
will not be doing this for Release versions of the hsakmt .so

Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: I41c768dee28c0564d92b9c103a6e2d97590e4589
2020-09-09 11:28:18 -04:00
Cole Nelson 141246eeeb libhsakmt: set packaging arch, field separators, vendor info
Change-Id: Ia1392285f5ee0beeaae136ad7d68e1723bc590ba
Signed-off-by: Cole Nelson <cole.nelson@amd.com>
2020-06-30 07:38:14 -04:00
Gang Ba fec3780c1a Revert "libhsakmt: add Streaming Performance Monitors APIs"
This reverts commit d675d1cce1.

Reason for revert: Change was submitted by accident

Change-Id: If05c705e22296fd3ca789f269737d379a933361d
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
2020-06-29 10:54:54 -04:00
Vlad Sytchenko 5fb771a195 Correctly set CMAKE_MODULE_PATH
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>
2020-06-24 15:47:06 -04:00