From 899bc4792f79bb58200b94dc67affcfff241c92a Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Sat, 7 Dec 2024 07:02:39 -0800 Subject: [PATCH] Update to 6.3 Signed-off-by: Tom Rix --- .gitignore | 1 + ...ally-download-kernel-header-amd_hsmp.patch | 99 +++++++++---------- amdsmi.spec | 44 +++++---- sources | 1 + 4 files changed, 74 insertions(+), 71 deletions(-) diff --git a/.gitignore b/.gitignore index aeec752..478be22 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /amdsmi-6.2.0.tar.gz /esmi_pkg_ver-3.0.3.tar.gz /amdsmi-6.2.1.tar.gz +/amdsmi-6.3.0.tar.gz diff --git a/0001-Do-not-automatically-download-kernel-header-amd_hsmp.patch b/0001-Do-not-automatically-download-kernel-header-amd_hsmp.patch index 9a70a8f..972dcba 100644 --- a/0001-Do-not-automatically-download-kernel-header-amd_hsmp.patch +++ b/0001-Do-not-automatically-download-kernel-header-amd_hsmp.patch @@ -1,6 +1,6 @@ -From 9831c2ea09f63cf140d42061171b3b5a642d539d Mon Sep 17 00:00:00 2001 +From 3edf0f4ab02edac50223fae8290df1356c9cc0b7 Mon Sep 17 00:00:00 2001 From: Tom Rix -Date: Wed, 7 Aug 2024 18:08:20 -0700 +Date: Sat, 7 Dec 2024 05:47:55 -0800 Subject: [PATCH] Do not automatically download kernel header amd_hsmp.h First look locally following these heuristics @@ -12,71 +12,64 @@ When these fail, download from the upstream kernel Signed-off-by: Tom Rix --- - CMakeLists.txt | 42 +++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 41 insertions(+), 1 deletion(-) + CMakeLists.txt | 43 +++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 882ab7a1839a..7ef97847bbff 100755 +index d2c118b072ab..e31dbc7e0b74 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -115,16 +115,56 @@ set(AMDSMI_INC_DIR "${PROJECT_SOURCE_DIR}/include/amd_smi") - set(ROCM_INC_DIR "${PROJECT_SOURCE_DIR}/rocm_smi/include/rocm_smi") - set(SHR_MUTEX_DIR "${PROJECT_SOURCE_DIR}/third_party/shared_mutex") - if(ENABLE_ESMI_LIB) -+ - if(NOT EXISTS ${PROJECT_SOURCE_DIR}/esmi_ib_library/src) - # TODO: use ExternalProject_Add instead or a submodule - # as of 2023.10.16 CI builds are broken with an updated submodule +@@ -128,9 +128,48 @@ if(ENABLE_ESMI_LIB) execute_process(COMMAND git clone --depth=1 -b esmi_pkg_ver-3.0.3 https://github.com/amd/esmi_ib_library.git ${PROJECT_SOURCE_DIR}/esmi_ib_library) endif() if(NOT EXISTS ${PROJECT_SOURCE_DIR}/esmi_ib_library/include/asm/amd_hsmp.h) -- file(DOWNLOAD + -+ # Need to find the correct amd_hsmp.h to use -+ # Use can specify on the cmd line with -DBUILD_KERNEL_ASM_DIR=/usr/include/asm -+ set(BUILD_KERNEL_ASM_DIR "" -+ CACHE PATH "Location of the kernel's asm dir ex/ usr/include/asm") -+ set(AMD_HSMP "") -+ if (NOT ${BUILD_KERNEL_ASM_DIR} STREQUAL "") -+ if (EXISTS ${BUILD_KERNEL_ASM_DIR}/amd_hsmp.h) -+ set(AMD_HSMP ${BUILD_KERNEL_ASM_DIR}/amd_hsmp.h) -+ else() -+ message("Check the value of -DBUILD_KERNEL_ASM_DIR=${BUILD_KERNEL_ASM_DIR}") -+ message(FATAL_ERROR "Could not find ${BUILD_KERNEL_ASM_DIR}/amd_hsmp.h") -+ endif() ++ # Need to find the correct amd_hsmp.h to use ++ # Use can specify on the cmd line with -DBUILD_KERNEL_ASM_DIR=/usr/include/asm ++ set(BUILD_KERNEL_ASM_DIR "" ++ CACHE PATH "Location of the kernel's asm dir ex/ usr/include/asm") ++ set(AMD_HSMP "") ++ if (NOT ${BUILD_KERNEL_ASM_DIR} STREQUAL "") ++ if (EXISTS ${BUILD_KERNEL_ASM_DIR}/amd_hsmp.h) ++ set(AMD_HSMP ${BUILD_KERNEL_ASM_DIR}/amd_hsmp.h) ++ else() ++ message("Check the value of -DBUILD_KERNEL_ASM_DIR=${BUILD_KERNEL_ASM_DIR}") ++ message(FATAL_ERROR "Could not find ${BUILD_KERNEL_ASM_DIR}/amd_hsmp.h") + endif() -+ if (NOT EXISTS ${AMD_HSMP}) -+ # Look for the headers in the running kernel, to do this make sure the correct kernel headers -+ # are install. Do something like what is done for fedora -+ # sudo dnf install "kernel-devel-uname-r == $(uname -r)" -+ execute_process(COMMAND uname -r OUTPUT_VARIABLE KERNEL_RELEASE OUTPUT_STRIP_TRAILING_WHITESPACE) -+ execute_process(COMMAND realpath /lib/modules/${KERNEL_RELEASE}/build OUTPUT_VARIABLE KERNEL_RELEASE_PATH OUTPUT_STRIP_TRAILING_WHITESPACE) -+ if (EXISTS ${KERNEL_RELEASE_PATH}/arch/x86/include/uapi/asm/amd_hsmp.h) -+ set(AMD_HSMP ${INSTALLED_KERNEL_BUILD_DIR}/arch/x86/include/uapi/asm/amd_hsmp.h) -+ endif() ++ endif() ++ if (NOT EXISTS ${AMD_HSMP}) ++ # Look for the headers in the running kernel, to do this make sure the correct kernel headers ++ # are install. Do something like what is done for fedora ++ # sudo dnf install "kernel-devel-uname-r == $(uname -r)" ++ execute_process(COMMAND uname -r OUTPUT_VARIABLE KERNEL_RELEASE OUTPUT_STRIP_TRAILING_WHITESPACE) ++ execute_process(COMMAND realpath /lib/modules/${KERNEL_RELEASE}/build OUTPUT_VARIABLE KERNEL_RELEASE_PATH OUTPUT_STRIP_TRAILING_WHITESPACE) ++ if (EXISTS ${KERNEL_RELEASE_PATH}/arch/x86/include/uapi/asm/amd_hsmp.h) ++ set(AMD_HSMP ${INSTALLED_KERNEL_BUILD_DIR}/arch/x86/include/uapi/asm/amd_hsmp.h) + endif() -+ if (NOT EXISTS ${AMD_HSMP}) -+ # Look in some obvious places -+ find_path(AMD_HSMP_DIR amd_hsmp.h HINTS /usr/include/asm) -+ if (EXISTS ${AMD_HSMP_DIR}/amd_hsmp.h) -+ set(AMD_HSMP ${AMD_HSMP_DIR}/amd_hsmp.h) -+ endif() ++ endif() ++ if (NOT EXISTS ${AMD_HSMP}) ++ # Look in some obvious places ++ find_path(AMD_HSMP_DIR amd_hsmp.h HINTS /usr/include/asm) ++ if (EXISTS ${AMD_HSMP_DIR}/amd_hsmp.h) ++ set(AMD_HSMP ${AMD_HSMP_DIR}/amd_hsmp.h) + endif() ++ endif() + -+ if (EXISTS ${AMD_HSMP}) -+ message(STATUS "Copying amd_hsmp.h from ${AMD_HSMP}") -+ file(COPY ${AMD_HSMP} DESTINATION ${PROJECT_SOURCE_DIR}/esmi_ib_library/include/asm/amd_hsmp.h) -+ else() -+ message(STATUS "Downloading amd_hsmp.h") -+ file(DOWNLOAD - https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/plain/arch/x86/include/uapi/asm/amd_hsmp.h?h=review-ilpo - ${PROJECT_SOURCE_DIR}/esmi_ib_library/include/asm/amd_hsmp.h) -+ endif() ++ if (EXISTS ${AMD_HSMP}) ++ message(STATUS "Copying amd_hsmp.h from ${AMD_HSMP}") ++ file(COPY ${AMD_HSMP} DESTINATION ${PROJECT_SOURCE_DIR}/esmi_ib_library/include/asm/amd_hsmp.h) ++ else() ++ message(STATUS "Downloading amd_hsmp.h") ++ + file(DOWNLOAD +- https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/plain/arch/x86/include/uapi/asm/amd_hsmp.h +- ${PROJECT_SOURCE_DIR}/esmi_ib_library/include/asm/amd_hsmp.h) ++ https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/plain/arch/x86/include/uapi/asm/amd_hsmp.h ++ ${PROJECT_SOURCE_DIR}/esmi_ib_library/include/asm/amd_hsmp.h) ++ endif() endif() -+ add_definitions("-DENABLE_ESMI_LIB=1") set(ESMI_INC_DIR "${PROJECT_SOURCE_DIR}/esmi_ib_library/include") - set(ESMI_SRC_DIR "${PROJECT_SOURCE_DIR}/esmi_ib_library/src") -- -2.46.0 +2.47.1 diff --git a/amdsmi.spec b/amdsmi.spec index a11fa2f..37803f1 100644 --- a/amdsmi.spec +++ b/amdsmi.spec @@ -1,5 +1,5 @@ -%global rocm_release 6.2 -%global rocm_patch 1 +%global rocm_release 6.3 +%global rocm_patch 0 %global rocm_version %{rocm_release}.%{rocm_patch} %global upstreamname amdsmi @@ -7,18 +7,19 @@ # Testing also depends on having AMD hardware cpu and/or gpu installed. # Not suitable for a general %check # -# Non root result for gfx1100 and this kernel 6.11.0-0.rc2.23.fc41.x86_64 +# Non root result for gfx1100 and this kernel 6.13.0-0.rc0.20241126git7eef7e306d3c.10.fc42.x86_64 # 25 pass, 5 fail # No oops %bcond_with test +%if %{with test} +%global build_test ON +%else +%global build_test OFF +%endif Name: amdsmi Version: %{rocm_version} -%if 0%{?suse_version} || 0%{?rhel} && 0%{?rhel} < 10 Release: 1%{?dist} -%else -Release: %autorelease -%endif Summary: AMD System Management Interface License: NCSA AND MIT AND BSD-3-Clause @@ -80,12 +81,14 @@ chmod a-x README.md # bdf_regex = "(?:[0-6]?[0-9a-fA-F]{1,4}:)?[0-2]?[0-9a-fA-F]{1,2}:[0-9a-fA-F]{1,2}\.[0-7]" sed -i -e 's@bdf_regex = "@bdf_regex = r"@' amdsmi_cli/BDF.py +# Install local gtests in same dir as tests +sed -i -e 's@${CPACK_PACKAGING_INSTALL_PREFIX}/lib@${SHARE_INSTALL_PREFIX}/tests@' tests/amd_smi_test/CMakeLists.txt + %build %cmake \ -DBUILD_KERNEL_ASM_DIR=/usr/include/asm \ -%if %{with test} - -DBUILD_TESTS=ON \ -%endif + -DCMAKE_SKIP_INSTALL_RPATH=TRUE \ + -DBUILD_TESTS=%build_test %cmake_build @@ -94,7 +97,6 @@ sed -i -e 's@bdf_regex = "@bdf_regex = r"@' amdsmi_cli/BDF.py mkdir -p %{buildroot}/%{python3_sitelib} mv %{buildroot}/usr/share/amdsmi %{buildroot}/%{python3_sitelib} -mv %{buildroot}/usr/share/setup.cfg %{buildroot}/%{python3_sitelib}/amdsmi/ mv %{buildroot}/usr/share/pyproject.toml %{buildroot}/%{python3_sitelib}/amdsmi/ # Remove some things @@ -113,6 +115,9 @@ fi if [ -f %{buildroot}%{_datadir}/_version.py ]; then rm %{buildroot}%{_datadir}/_version.py fi +if [ -f %{buildroot}%{_datadir}/setup.py ]; then + rm %{buildroot}%{_datadir}/setup.py +fi # W: unstripped-binary-or-object /usr/lib/python3.13/site-packages/amdsmi/libamd_smi.so # Does an explict open, so can not just rm it @@ -126,18 +131,22 @@ rm %{buildroot}%{_libdir}/cmake/amd_smi/amd_smi-config.cmake %files %doc README.md -%license License.txt %license LICENSE %license esmi_ib_library_License.txt %{_libdir}/libamd_smi.so.* +%{_libdir}/libgoamdsmi_shim64.so.* %{_bindir}/amd-smi %{_libexecdir}/amdsmi_cli %{python3_sitelib}/amdsmi %files devel -%{_includedir}/amd_smi +%dir %{_includedir}/amd_smi +%dir %{_libdir}/cmake/amd_smi +%{_includedir}/amd_smi/*.h +%{_includedir}/*.h %{_libdir}/libamd_smi.so -%{_libdir}/cmake/amd_smi +%{_libdir}/libgoamdsmi_shim64.so +%{_libdir}/cmake/amd_smi/*.cmake %if %{with test} %files test @@ -145,11 +154,10 @@ rm %{buildroot}%{_libdir}/cmake/amd_smi/amd_smi-config.cmake %endif %changelog -%if 0%{?suse_version} +* Sat Dec 7 2024 Tom Rix - 6.3.0-1 +- Update to 6.3 + * Sun Nov 3 2024 Tom Rix - 6.2.1-1 - Stub for tumbleweed -%else -%autochangelog -%endif diff --git a/sources b/sources index 43c3baf..4133b33 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ SHA512 (amdsmi-6.2.1.tar.gz) = aa7349a84b85c914ecade91d16421fa885f15ce827f7186f404039e1f6a888e5a0ad0b6808e487d9ccbba9184504b4bfa0ab9c7623452c3ef050ddba96159cbe SHA512 (esmi_pkg_ver-3.0.3.tar.gz) = dc485d1d5c3538c4006b3af471761f46e9db1cefd679986b1cecc9c5e6462ffb41993ef0c04c5af0f2742b13bd58f58b6ac352e5bf547e02dff949a0c3973726 +SHA512 (amdsmi-6.3.0.tar.gz) = 9ac0486e411d7adf6ecfbc9657affede582297bdbe2441589b2203d6df08427e1ff5bb878ddc7e27ad259cf5b49daf7d8b874e97797b4c23695b4c9711a1bc63