diff --git a/ChangeLog b/ChangeLog index bcb04de17..d71f6fbd6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,7 +3,7 @@ PHORONIX TEST SUITE CHANGE-LOG Phoronix Test Suite 10.8.5 [GIT] -pts-core: PHP 8.2 warning fixes +pts-core: PHP 8.2/8.3 warning fixes pts-core: Various bug fixes phodevi: Hardware/software detection updates diff --git a/pts-core/commands/shell.php b/pts-core/commands/shell.php index 6d79342a2..1956d7b6e 100644 --- a/pts-core/commands/shell.php +++ b/pts-core/commands/shell.php @@ -105,7 +105,7 @@ class shell implements pts_option_interface // SENSORS $terminal_width = pts_client::terminal_width(); $sensors = array(); - foreach(phodevi::supported_sensors(array('cpu_usage', 'cpu_temp', 'sys_temp', 'sys_power', 'gpu_usage', 'gpu_temp', 'memory_usage')) as $sensor) + foreach(phodevi::query_sensors(array('cpu_usage', 'cpu_temp', 'sys_temp', 'sys_power', 'gpu_usage', 'gpu_temp', 'memory_usage')) as $sensor) { $supported_devices = call_user_func(array($sensor[2], 'get_supported_devices')); diff --git a/pts-core/commands/system_sensors.php b/pts-core/commands/system_sensors.php index c43a30253..229ba6aa4 100644 --- a/pts-core/commands/system_sensors.php +++ b/pts-core/commands/system_sensors.php @@ -29,7 +29,7 @@ class system_sensors implements pts_option_interface { pts_client::$display->generic_heading('Supported Sensors For This System'); $tabled = array(); - foreach(phodevi::supported_sensors() as $sensor) + foreach(phodevi::query_sensors() as $sensor) { $supported_devices = call_user_func(array($sensor[2], 'get_supported_devices')); @@ -52,13 +52,6 @@ class system_sensors implements pts_option_interface } } echo pts_user_io::display_text_table($tabled) . PHP_EOL; - - pts_client::$display->generic_heading('Unsupported Sensors For This System'); - foreach(phodevi::unsupported_sensors() as $sensor) - { - echo '- ' . phodevi::sensor_name($sensor) . PHP_EOL; - } - echo PHP_EOL; } } diff --git a/pts-core/modules/phoromatic.php b/pts-core/modules/phoromatic.php index 3f612bacb..cfa1bae55 100644 --- a/pts-core/modules/phoromatic.php +++ b/pts-core/modules/phoromatic.php @@ -231,7 +231,7 @@ class phoromatic extends pts_module_interface $j['phoromatic']['client-log'] = $phoromatic_log; } - foreach(phodevi::supported_sensors() as $sensor) + foreach(phodevi::query_sensors() as $sensor) { $j['phoromatic']['stats']['sensors'][phodevi::sensor_name($sensor)] = array('value' => phodevi::read_sensor($sensor), 'unit' => phodevi::read_sensor_unit($sensor)); } diff --git a/pts-core/modules/system_monitor.php b/pts-core/modules/system_monitor.php index 2bff7e0f0..228664cd9 100644 --- a/pts-core/modules/system_monitor.php +++ b/pts-core/modules/system_monitor.php @@ -420,7 +420,7 @@ class system_monitor extends pts_module_interface private static function process_sensor_list(&$sensor_parameters) { $monitor_all = array_key_exists('all', $sensor_parameters); - foreach(phodevi::supported_sensors() as $sensor) + foreach(phodevi::query_sensors() as $sensor) { // instantiate sensor class if: // a) we want to monitor all the available sensors, diff --git a/pts-core/modules/watchdog.php b/pts-core/modules/watchdog.php index 17b79120b..5a0d448ef 100644 --- a/pts-core/modules/watchdog.php +++ b/pts-core/modules/watchdog.php @@ -57,7 +57,7 @@ class watchdog extends pts_module_interface $to_monitor[$type][$name][] = $parameter; } } - foreach(phodevi::supported_sensors() as $sensor) + foreach(phodevi::query_sensors() as $sensor) { if(array_key_exists($sensor[0], $to_monitor) && array_key_exists($sensor[1], $to_monitor[$sensor[0]])) { diff --git a/pts-core/objects/client/pts_stress_run_manager.php b/pts-core/objects/client/pts_stress_run_manager.php index 50d6d84cc..9114b145e 100644 --- a/pts-core/objects/client/pts_stress_run_manager.php +++ b/pts-core/objects/client/pts_stress_run_manager.php @@ -212,7 +212,7 @@ class pts_stress_run_manager extends pts_test_run_manager // SENSOR SETUP WORK $sensor_interval_frequency = is_numeric($total_loop_time) && $total_loop_time > 1 ? max($total_loop_time / 1000, 3) : 6; $sensor_time_since_last_poll = time(); - foreach(phodevi::supported_sensors(array('cpu_temp', 'cpu_usage', 'gpu_usage', 'gpu_temp', 'hdd_read_speed', 'hdd_write_speed', 'memory_usage', 'swap_usage', 'sys_temp')) as $sensor) + foreach(phodevi::query_sensors(array('cpu_temp', 'cpu_usage', 'gpu_usage', 'gpu_temp', 'hdd_read_speed', 'hdd_write_speed', 'memory_usage', 'swap_usage', 'sys_temp')) as $sensor) { $supported_devices = call_user_func(array($sensor[2], 'get_supported_devices')); diff --git a/pts-core/objects/phodevi/components/phodevi_cpu.php b/pts-core/objects/phodevi/components/phodevi_cpu.php index 524ca7aca..bcd67ab21 100644 --- a/pts-core/objects/phodevi/components/phodevi_cpu.php +++ b/pts-core/objects/phodevi/components/phodevi_cpu.php @@ -811,6 +811,12 @@ class phodevi_cpu extends phodevi_device_interface case '0xd82': $new_info .= ' Cortex-X4'; break; + case '0xd88': + $new_info .= ' Cortex-A520E'; + break; + case '0xd89': + $new_info .= ' Cortex-A720E'; + break; } } else if($implementer == '0x61') @@ -1425,7 +1431,7 @@ class phodevi_cpu extends phodevi_device_interface 173 => 'Granite Rapids', 174 => 'Granite Rapids', 175 => 'Sierra Forest', - 181 => 'Meteor Lake', + 181 => 'Arrow Lake', 182 => 'Grand Ridge', 183 => 'Raptor Lake', 186 => 'Raptor Lake', diff --git a/pts-core/objects/phodevi/phodevi.php b/pts-core/objects/phodevi/phodevi.php index f57196911..051d018f9 100644 --- a/pts-core/objects/phodevi/phodevi.php +++ b/pts-core/objects/phodevi/phodevi.php @@ -3,8 +3,8 @@ /* Phoronix Test Suite URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/ - Copyright (C) 2009 - 2019, Phoronix Media - Copyright (C) 2009 - 2019, Michael Larabel + Copyright (C) 2009 - 2024, Phoronix Media + Copyright (C) 2009 - 2024, Michael Larabel phodevi.php: The object for interacting with the PTS device framework This program is free software; you can redistribute it and/or modify @@ -84,15 +84,11 @@ class phodevi extends phodevi_base } } } - public static function available_sensors($limit_sensors = false) + public static function available_sensors() { static $available_sensors = null; - if($limit_sensors != false) - { - return self::select_sensors($limit_sensors); - } - else if($available_sensors == null) + if($available_sensors == null) { $available_sensors = array(); @@ -107,29 +103,10 @@ class phodevi extends phodevi_base return $available_sensors; } - public static function select_sensors($limit_sensors = false) - { - if(!defined('PHP_VERSION_ID') || PHP_VERSION_ID < 50300) - { - // Phodevi sensors don't work prior to PHP 5.3 - return array(); - } - - $selected = array(); - foreach(self::available_sensors() as $sensor) - { - if($limit_sensors == false || (is_array($limit_sensors) && in_array($sensor[2], $limit_sensors))) - { - array_push($selected, $sensor); - } - } - - return $selected; - } public static function is_sensor_supported($sensor) { $supported = false; - $sensors = self::supported_sensors(); + $sensors = self::query_sensors(); foreach($sensors as $s) { if($s[0] == $sensor[0] && $s[1] == $sensor[1]) @@ -141,18 +118,26 @@ class phodevi extends phodevi_base return $supported; } - public static function supported_sensors($limit_sensors = false) + public static function query_sensors($limit_sensor_selection = false) { static $supported_sensors = null; - if($limit_sensors != false) + if($limit_sensor_selection != false) { - return self::select_sensors($limit_sensors); + $selected = array(); + foreach(self::available_sensors() as $sensor) + { + if($limit_sensor_selection == false || (is_array($limit_sensor_selection) && in_array($sensor[2], $limit_sensor_selection))) + { + array_push($selected, $sensor); + } + } + return $selected; } else if($supported_sensors == null) { $supported_sensors = array(); - foreach(self::available_sensors($limit_sensors) as $sensor) + foreach(self::available_sensors() as $sensor) { if(self::sensor_supported($sensor)) { @@ -163,26 +148,6 @@ class phodevi extends phodevi_base return $supported_sensors; } - public static function unsupported_sensors() - { - static $unsupported_sensors = null; - - if($unsupported_sensors == null) - { - $unsupported_sensors = array(); - $supported_sensors = self::supported_sensors(); - - foreach(self::available_sensors() as $sensor) - { - if(!in_array($sensor, $supported_sensors)) - { - array_push($unsupported_sensors, $sensor); - } - } - } - - return $unsupported_sensors; - } public static function read_sensor($sensor) { if($sensor instanceof phodevi_sensor) diff --git a/pts-core/objects/phodevi/phodevi_sensor_monitor.php b/pts-core/objects/phodevi/phodevi_sensor_monitor.php index 2a58c19ec..77feae5cd 100644 --- a/pts-core/objects/phodevi/phodevi_sensor_monitor.php +++ b/pts-core/objects/phodevi/phodevi_sensor_monitor.php @@ -38,7 +38,7 @@ class phodevi_sensor_monitor $monitor_all = in_array('all', $to_monitor); $this->sensors_to_monitor = array(); - foreach(phodevi::supported_sensors() as $sensor) + foreach(phodevi::query_sensors() as $sensor) { if($monitor_all || in_array(phodevi::sensor_identifier($sensor), $to_monitor) || in_array('all.' . $sensor[0], $to_monitor)) { diff --git a/pts-core/objects/pts_result_viewer_embed.php b/pts-core/objects/pts_result_viewer_embed.php index 60747d744..9e06f2b9e 100644 --- a/pts-core/objects/pts_result_viewer_embed.php +++ b/pts-core/objects/pts_result_viewer_embed.php @@ -1002,7 +1002,7 @@ class pts_result_viewer_embed $stime = strtotime($sys->get_timestamp()); $t .= '
' . date(($stime > $start_of_year ? 'F d' : 'F d Y'), $stime) . '
-
  ' . (isset($test_run_times[$si]) && $test_run_times[$si] > 0 ? pts_strings::format_time($test_run_times[$si], 'SECONDS', true, 60) : ' ') . '
'; +
  ' . (isset($test_run_times[$si]) && $test_run_times[$si] > 0 && $test_run_times[$si] < 604800 ? pts_strings::format_time($test_run_times[$si], 'SECONDS', true, 60) : ' ') . '
'; if($can_delete_results && !empty($public_id)) { @@ -1030,9 +1030,10 @@ class pts_result_viewer_embed $t .= '
'; } + $avg_run_time = array_sum($test_run_times) / count($test_run_times); $t .= '
' . self::html_select_menu('ppt', 'ppt', null, array('D' => 'Dollar', 'DPH' => 'Dollar / Hour'), true) . '
-
  ' . pts_strings::format_time(array_sum($test_run_times) / count($test_run_times), 'SECONDS', true, 60) . '
+
  ' . ($avg_run_time > 0 && $avg_run_time < 604800 ? pts_strings::format_time($avg_run_time, 'SECONDS', true, 60) : '') . '
'; if($can_delete_results)