phodevi: Bug fixes
This commit is contained in:
@@ -3,7 +3,7 @@ PHORONIX TEST SUITE CHANGE-LOG
|
|||||||
Phoronix Test Suite 10.8.5
|
Phoronix Test Suite 10.8.5
|
||||||
[GIT]
|
[GIT]
|
||||||
|
|
||||||
pts-core: PHP 8.2 warning fixes
|
pts-core: PHP 8.2/8.3 warning fixes
|
||||||
pts-core: Various bug fixes
|
pts-core: Various bug fixes
|
||||||
phodevi: Hardware/software detection updates
|
phodevi: Hardware/software detection updates
|
||||||
|
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ class shell implements pts_option_interface
|
|||||||
// SENSORS
|
// SENSORS
|
||||||
$terminal_width = pts_client::terminal_width();
|
$terminal_width = pts_client::terminal_width();
|
||||||
$sensors = array();
|
$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'));
|
$supported_devices = call_user_func(array($sensor[2], 'get_supported_devices'));
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class system_sensors implements pts_option_interface
|
|||||||
{
|
{
|
||||||
pts_client::$display->generic_heading('Supported Sensors For This System');
|
pts_client::$display->generic_heading('Supported Sensors For This System');
|
||||||
$tabled = array();
|
$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'));
|
$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;
|
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -231,7 +231,7 @@ class phoromatic extends pts_module_interface
|
|||||||
$j['phoromatic']['client-log'] = $phoromatic_log;
|
$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));
|
$j['phoromatic']['stats']['sensors'][phodevi::sensor_name($sensor)] = array('value' => phodevi::read_sensor($sensor), 'unit' => phodevi::read_sensor_unit($sensor));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -420,7 +420,7 @@ class system_monitor extends pts_module_interface
|
|||||||
private static function process_sensor_list(&$sensor_parameters)
|
private static function process_sensor_list(&$sensor_parameters)
|
||||||
{
|
{
|
||||||
$monitor_all = array_key_exists('all', $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:
|
// instantiate sensor class if:
|
||||||
// a) we want to monitor all the available sensors,
|
// a) we want to monitor all the available sensors,
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ class watchdog extends pts_module_interface
|
|||||||
$to_monitor[$type][$name][] = $parameter;
|
$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]]))
|
if(array_key_exists($sensor[0], $to_monitor) && array_key_exists($sensor[1], $to_monitor[$sensor[0]]))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -212,7 +212,7 @@ class pts_stress_run_manager extends pts_test_run_manager
|
|||||||
// SENSOR SETUP WORK
|
// SENSOR SETUP WORK
|
||||||
$sensor_interval_frequency = is_numeric($total_loop_time) && $total_loop_time > 1 ? max($total_loop_time / 1000, 3) : 6;
|
$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();
|
$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'));
|
$supported_devices = call_user_func(array($sensor[2], 'get_supported_devices'));
|
||||||
|
|
||||||
|
|||||||
@@ -811,6 +811,12 @@ class phodevi_cpu extends phodevi_device_interface
|
|||||||
case '0xd82':
|
case '0xd82':
|
||||||
$new_info .= ' Cortex-X4';
|
$new_info .= ' Cortex-X4';
|
||||||
break;
|
break;
|
||||||
|
case '0xd88':
|
||||||
|
$new_info .= ' Cortex-A520E';
|
||||||
|
break;
|
||||||
|
case '0xd89':
|
||||||
|
$new_info .= ' Cortex-A720E';
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if($implementer == '0x61')
|
else if($implementer == '0x61')
|
||||||
@@ -1425,7 +1431,7 @@ class phodevi_cpu extends phodevi_device_interface
|
|||||||
173 => 'Granite Rapids',
|
173 => 'Granite Rapids',
|
||||||
174 => 'Granite Rapids',
|
174 => 'Granite Rapids',
|
||||||
175 => 'Sierra Forest',
|
175 => 'Sierra Forest',
|
||||||
181 => 'Meteor Lake',
|
181 => 'Arrow Lake',
|
||||||
182 => 'Grand Ridge',
|
182 => 'Grand Ridge',
|
||||||
183 => 'Raptor Lake',
|
183 => 'Raptor Lake',
|
||||||
186 => 'Raptor Lake',
|
186 => 'Raptor Lake',
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
/*
|
/*
|
||||||
Phoronix Test Suite
|
Phoronix Test Suite
|
||||||
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
|
||||||
Copyright (C) 2009 - 2019, Phoronix Media
|
Copyright (C) 2009 - 2024, Phoronix Media
|
||||||
Copyright (C) 2009 - 2019, Michael Larabel
|
Copyright (C) 2009 - 2024, Michael Larabel
|
||||||
phodevi.php: The object for interacting with the PTS device framework
|
phodevi.php: The object for interacting with the PTS device framework
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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;
|
static $available_sensors = null;
|
||||||
|
|
||||||
if($limit_sensors != false)
|
if($available_sensors == null)
|
||||||
{
|
|
||||||
return self::select_sensors($limit_sensors);
|
|
||||||
}
|
|
||||||
else if($available_sensors == null)
|
|
||||||
{
|
{
|
||||||
$available_sensors = array();
|
$available_sensors = array();
|
||||||
|
|
||||||
@@ -107,29 +103,10 @@ class phodevi extends phodevi_base
|
|||||||
|
|
||||||
return $available_sensors;
|
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)
|
public static function is_sensor_supported($sensor)
|
||||||
{
|
{
|
||||||
$supported = false;
|
$supported = false;
|
||||||
$sensors = self::supported_sensors();
|
$sensors = self::query_sensors();
|
||||||
foreach($sensors as $s)
|
foreach($sensors as $s)
|
||||||
{
|
{
|
||||||
if($s[0] == $sensor[0] && $s[1] == $sensor[1])
|
if($s[0] == $sensor[0] && $s[1] == $sensor[1])
|
||||||
@@ -141,18 +118,26 @@ class phodevi extends phodevi_base
|
|||||||
|
|
||||||
return $supported;
|
return $supported;
|
||||||
}
|
}
|
||||||
public static function supported_sensors($limit_sensors = false)
|
public static function query_sensors($limit_sensor_selection = false)
|
||||||
{
|
{
|
||||||
static $supported_sensors = null;
|
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)
|
else if($supported_sensors == null)
|
||||||
{
|
{
|
||||||
$supported_sensors = array();
|
$supported_sensors = array();
|
||||||
foreach(self::available_sensors($limit_sensors) as $sensor)
|
foreach(self::available_sensors() as $sensor)
|
||||||
{
|
{
|
||||||
if(self::sensor_supported($sensor))
|
if(self::sensor_supported($sensor))
|
||||||
{
|
{
|
||||||
@@ -163,26 +148,6 @@ class phodevi extends phodevi_base
|
|||||||
|
|
||||||
return $supported_sensors;
|
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)
|
public static function read_sensor($sensor)
|
||||||
{
|
{
|
||||||
if($sensor instanceof phodevi_sensor)
|
if($sensor instanceof phodevi_sensor)
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class phodevi_sensor_monitor
|
|||||||
|
|
||||||
$monitor_all = in_array('all', $to_monitor);
|
$monitor_all = in_array('all', $to_monitor);
|
||||||
$this->sensors_to_monitor = array();
|
$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))
|
if($monitor_all || in_array(phodevi::sensor_identifier($sensor), $to_monitor) || in_array('all.' . $sensor[0], $to_monitor))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1002,7 +1002,7 @@ class pts_result_viewer_embed
|
|||||||
$stime = strtotime($sys->get_timestamp());
|
$stime = strtotime($sys->get_timestamp());
|
||||||
$t .= '<div class="div_table_cell"><input type="number" min="0" step="0.001" name="ppd_' . $ppdx . '" value="' . ($ppd && $ppd !== true ? strip_tags($ppd) : '0') . '" /></div>
|
$t .= '<div class="div_table_cell"><input type="number" min="0" step="0.001" name="ppd_' . $ppdx . '" value="' . ($ppd && $ppd !== true ? strip_tags($ppd) : '0') . '" /></div>
|
||||||
<div class="div_table_cell">' . date(($stime > $start_of_year ? 'F d' : 'F d Y'), $stime) . '</div>
|
<div class="div_table_cell">' . date(($stime > $start_of_year ? 'F d' : 'F d Y'), $stime) . '</div>
|
||||||
<div class="div_table_cell"> ' . (isset($test_run_times[$si]) && $test_run_times[$si] > 0 ? pts_strings::format_time($test_run_times[$si], 'SECONDS', true, 60) : ' ') . '</div>';
|
<div class="div_table_cell"> ' . (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) : ' ') . '</div>';
|
||||||
|
|
||||||
if($can_delete_results && !empty($public_id))
|
if($can_delete_results && !empty($public_id))
|
||||||
{
|
{
|
||||||
@@ -1030,9 +1030,10 @@ class pts_result_viewer_embed
|
|||||||
$t .= '<div class="div_table_cell"> </div>';
|
$t .= '<div class="div_table_cell"> </div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$avg_run_time = array_sum($test_run_times) / count($test_run_times);
|
||||||
$t .= '<div class="div_table_cell">' . self::html_select_menu('ppt', 'ppt', null, array('D' => 'Dollar', 'DPH' => 'Dollar / Hour'), true) . '</div>
|
$t .= '<div class="div_table_cell">' . self::html_select_menu('ppt', 'ppt', null, array('D' => 'Dollar', 'DPH' => 'Dollar / Hour'), true) . '</div>
|
||||||
<div class="div_table_cell"> </div>
|
<div class="div_table_cell"> </div>
|
||||||
<div class="div_table_cell"> <em>' . pts_strings::format_time(array_sum($test_run_times) / count($test_run_times), 'SECONDS', true, 60) . '</em></div>
|
<div class="div_table_cell"> <em>' . ($avg_run_time > 0 && $avg_run_time < 604800 ? pts_strings::format_time($avg_run_time, 'SECONDS', true, 60) : '') . '</em></div>
|
||||||
<div class="div_table_cell">';
|
<div class="div_table_cell">';
|
||||||
|
|
||||||
if($can_delete_results)
|
if($can_delete_results)
|
||||||
|
|||||||
Reference in New Issue
Block a user