Skip to content

Commit 64f97bd

Browse files
Merge amd-staging into amd-mainline 20250310 (#176)
Signed-off-by: Maisam Arif <Maisam.Arif@amd.com>
2 parents c11a8ef + e8ae642 commit 64f97bd

34 files changed

+3509
-588
lines changed

CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -369,12 +369,10 @@ endif()
369369

370370
## Process the Rpm install/remove scripts to update the CPACK variables
371371
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/RPM/post.in" RPM/post @ONLY)
372-
# configure_file("${CMAKE_CURRENT_SOURCE_DIR}/RPM/amd-smi-lib/preun.in" RPM/preun @ONLY)
373372
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/RPM/preun.in" RPM/preun @ONLY)
374373
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/RPM/postun.in" RPM/postun @ONLY)
375374
set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/RPM/post")
376375
set(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/RPM/preun")
377-
# set(CPACK_RPM_TESTS_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/RPM/amd-smi-lib-tests/preun")
378376
set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/RPM/postun")
379377

380378
#Set the names now using CPACK utility

RPM/amd-smi-lib-tests/preun.in

Lines changed: 0 additions & 92 deletions
This file was deleted.

RPM/amd-smi-lib/preun.in

Lines changed: 0 additions & 94 deletions
This file was deleted.

RPM/preun.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ rm_leftovers() {
99
rm -rf "$RPM_INSTALL_PREFIX0/@SHARE_INSTALL_PREFIX@/amdsmi.egg-info"
1010
rm -rf "$RPM_INSTALL_PREFIX0/@SHARE_INSTALL_PREFIX@/build"
1111

12+
# remove dist files (only applies to old setuptools versions like on RHEL8)
13+
rm -rf "$RPM_INSTALL_PREFIX0/@SHARE_INSTALL_PREFIX@/dist"
14+
1215
# remove leftover doc files
1316
if test -e "$RPM_INSTALL_PREFIX0/@SHARE_INSTALL_PREFIX@/../doc/amd_smi*"; then
1417
rm -rf "$RPM_INSTALL_PREFIX0/@SHARE_INSTALL_PREFIX@/../doc/amd_smi*"

amdsmi_cli/amdsmi_commands.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@
2929
import time
3030

3131
from _version import __version__
32-
from amdsmi import amdsmi_exception, amdsmi_interface
3332
from amdsmi_cli_exceptions import AmdSmiInvalidParameterException, AmdSmiRequiredCommandException
3433
from amdsmi_helpers import AMDSMIHelpers
3534
from amdsmi_logger import AMDSMILogger
35+
from amdsmi import amdsmi_exception, amdsmi_interface
3636

3737

3838
class AMDSMICommands():
@@ -387,6 +387,8 @@ def static_gpu(self, args, multiple_devices=False, gpu=None, asic=None, bus=None
387387
args.cache = cache
388388
if process_isolation:
389389
args.process_isolation = process_isolation
390+
if partition:
391+
args.partition = partition
390392
if clock:
391393
args.clock = clock
392394
# args.clock defaults to False so if it was overwritten to empty list, that indicates that it was given as an arguments but with an empty list
@@ -396,24 +398,22 @@ def static_gpu(self, args, multiple_devices=False, gpu=None, asic=None, bus=None
396398
# Store args that are applicable to the current platform
397399
current_platform_args = ["asic", "bus", "vbios", "driver", "ras",
398400
"vram", "cache", "board", "process_isolation",
399-
"clock"]
401+
"clock", "partition"]
400402
current_platform_values = [args.asic, args.bus, args.vbios, args.driver, args.ras,
401403
args.vram, args.cache, args.board, args.process_isolation,
402-
args.clock]
404+
args.clock, args.partition]
403405

404406
self.helpers.check_required_groups()
405407

406408
if self.helpers.is_linux() and self.helpers.is_baremetal():
407-
if partition:
408-
args.partition = partition
409409
if limit:
410410
args.limit = limit
411411
if soc_pstate:
412412
args.soc_pstate = soc_pstate
413413
if xgmi_plpd:
414414
args.xgmi_plpd = xgmi_plpd
415-
current_platform_args += ["ras", "limit", "partition", "soc_pstate", "xgmi_plpd"]
416-
current_platform_values += [args.ras, args.limit, args.partition, args.soc_pstate, args.xgmi_plpd]
415+
current_platform_args += ["ras", "limit", "soc_pstate", "xgmi_plpd"]
416+
current_platform_values += [args.ras, args.limit, args.soc_pstate, args.xgmi_plpd]
417417

418418
if self.helpers.is_linux() and not self.helpers.is_virtual_os():
419419
if numa:
@@ -4240,7 +4240,7 @@ def set_gpu(self, args, multiple_devices=False, gpu=None, fan=None, perf_level=N
42404240
if args.compute_partition in accelerator_profiles['profile_types']:
42414241
compute_partition = amdsmi_interface.AmdSmiComputePartitionType[args.compute_partition]
42424242
index = accelerator_profiles['profile_types'].index(args.compute_partition)
4243-
attempted_to_set = f"Attempted to set accelerator partition to {args.compute_partition} (profile #{accelerator_profiles['profile_indices'][int(index)]} on {gpu_string}"
4243+
attempted_to_set = f"Attempted to set accelerator partition to {args.compute_partition} (profile #{accelerator_profiles['profile_indices'][int(index)]}) on {gpu_string}"
42444244
amdsmi_interface.amdsmi_set_gpu_compute_partition(args.gpu, compute_partition)
42454245
self.logger.store_output(args.gpu, 'accelerator_partition', f"Successfully set accelerator partition to {args.compute_partition} (profile #{accelerator_profiles['profile_indices'][int(index)]})")
42464246
elif args.compute_partition in accelerator_profiles['profile_indices']:
@@ -4294,7 +4294,7 @@ def set_gpu(self, args, multiple_devices=False, gpu=None, fan=None, perf_level=N
42944294

42954295
threads = []
42964296
k140secs = 140
4297-
string_out = f"Updating memory partition for gpu {gpu_id}"
4297+
string_out = f"Updating memory partition for GPU: {gpu_id}"
42984298
timesToRetryRestartErr = 1
42994299

43004300
self.helpers.increment_set_count()
@@ -4305,9 +4305,9 @@ def set_gpu(self, args, multiple_devices=False, gpu=None, fan=None, perf_level=N
43054305
while timesToRetryRestartErr >= 0:
43064306
timesToRetryRestartErr -= 1
43074307
try:
4308-
if showProgressBar: # only show reload warning on 1st set
4308+
if showProgressBar: # we want to overwrite the previous progress bar
43094309
t1 = multiprocessing.Process(target=self.helpers.showProgressbar,
4310-
args=(string_out, k140secs,))
4310+
args=(string_out, k140secs, True,))
43114311
threads.append(t1)
43124312
t1.start()
43134313
memory_partition = amdsmi_interface.AmdSmiMemoryPartitionType[args.memory_partition]
@@ -4342,7 +4342,7 @@ def set_gpu(self, args, multiple_devices=False, gpu=None, fan=None, perf_level=N
43424342
return
43434343
if e.get_error_code() == amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_AMDGPU_RESTART_ERR:
43444344
# Try again on a failure -> work around for not being able to close libdrm
4345-
string_out = f"Trying again - Updating memory partition for gpu {gpu_id}"
4345+
string_out = f"Trying again - Updating memory partition for GPU: {gpu_id} "
43464346
for thread in threads:
43474347
thread.terminate()
43484348
thread.join()

amdsmi_cli/amdsmi_helpers.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -969,22 +969,26 @@ def get_pci_device_ids(self) -> Set[str]:
969969
continue
970970
return pci_devices
971971

972-
def progressbar(self, it, prefix="", size=60, out=sys.stdout):
972+
def progressbar(self, it, prefix="", size=60, out=sys.stdout, add_newline=False):
973973
count = len(it)
974+
if (add_newline):
975+
print("{}\n".format(prefix),end='\r', file=out, flush=False)
976+
else:
977+
print("{}".format(prefix),end='\r', file=out, flush=False)
974978
def show(j):
975979
x = int(size*j/count)
976-
print("{}[{}{}] {}/{} secs remain".format(prefix, u"█"*x, "."*(size-x), j, count),
980+
print("[{}{}] {}/{} secs remain".format(u"█"*x, "."*(size-x), j, count),
977981
end='\r', file=out, flush=True)
978982
show(0)
979983
for i, item in enumerate(it):
980984
yield item
981985
show(i+1)
982986
print("\n\n", end='\r', flush=True, file=out)
983987

984-
def showProgressbar(self, title="", timeInSeconds=13):
988+
def showProgressbar(self, title="", timeInSeconds=13, add_newline=False):
985989
if title != "":
986-
title += ": "
987-
for i in self.progressbar(range(timeInSeconds), title, 40):
990+
title += " "
991+
for i in self.progressbar(range(timeInSeconds), title, 40, add_newline=add_newline):
988992
time.sleep(1)
989993

990994
def check_required_groups(self):

amdsmi_cli/amdsmi_parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -695,10 +695,10 @@ def _add_static_parser(self, subparsers: argparse._SubParsersAction, func):
695695
static_parser.add_argument('-R', '--process-isolation', action='store_true', required=False, help=process_isolation_help)
696696
static_parser.add_argument('-r', '--ras', action='store_true', required=False, help=ras_help)
697697
static_parser.add_argument('-C', '--clock', action='store', default=False, nargs='*', type=str, required=False, help=clock_help)
698+
static_parser.add_argument('-p', '--partition', action='store_true', required=False, help=partition_help)
698699

699700
# Options to display on Hypervisors and Baremetal
700701
if self.helpers.is_hypervisor() or self.helpers.is_baremetal():
701-
static_parser.add_argument('-p', '--partition', action='store_true', required=False, help=partition_help)
702702
static_parser.add_argument('-l', '--limit', action='store_true', required=False, help=limit_help)
703703
static_parser.add_argument('-P', '--soc-pstate', action='store_true', required=False, help=soc_pstate_help)
704704
static_parser.add_argument('-x', '--xgmi-plpd', action='store_true', required=False, help=xgmi_plpd_help)

0 commit comments

Comments
 (0)