diff --git a/selfdrive/hardware/tici/hardware.py b/selfdrive/hardware/tici/hardware.py index 77f3265386..1cffe7c287 100644 --- a/selfdrive/hardware/tici/hardware.py +++ b/selfdrive/hardware/tici/hardware.py @@ -415,12 +415,12 @@ class Tici(HardwareBase): # offline big cluster, leave core 4 online for boardd for i in range(5, 8): - val = "0" if powersave_enabled else "1" - sudo_write(val, f"/sys/devices/system/cpu/cpu{i}/online") + val = '0' if powersave_enabled else '1' + sudo_write(val, f'/sys/devices/system/cpu/cpu{i}/online') for n in ('0', '4'): gov = 'ondemand' if powersave_enabled else 'performance' - sudo_write(gov, f"/sys/devices/system/cpu/cpufreq/policy{n}/scaling_governor") + sudo_write(gov, f'/sys/devices/system/cpu/cpufreq/policy{n}/scaling_governor') # *** IRQ config *** affine_irq(5, 565) # kgsl-3d0 @@ -450,13 +450,15 @@ class Tici(HardwareBase): sudo_write("f", "/proc/irq/default_smp_affinity") # *** GPU config *** - sudo_write("0", "/sys/class/kgsl/kgsl-3d0/min_pwrlevel") - sudo_write("0", "/sys/class/kgsl/kgsl-3d0/max_pwrlevel") + # https://github.com/commaai/agnos-kernel-sdm845/blob/master/arch/arm64/boot/dts/qcom/sdm845-gpu.dtsi#L216 + sudo_write("1", "/sys/class/kgsl/kgsl-3d0/min_pwrlevel") + sudo_write("1", "/sys/class/kgsl/kgsl-3d0/max_pwrlevel") sudo_write("1", "/sys/class/kgsl/kgsl-3d0/force_bus_on") sudo_write("1", "/sys/class/kgsl/kgsl-3d0/force_clk_on") sudo_write("1", "/sys/class/kgsl/kgsl-3d0/force_rail_on") sudo_write("1000000", "/sys/class/kgsl/kgsl-3d0/idle_timer") sudo_write("performance", "/sys/class/kgsl/kgsl-3d0/devfreq/governor") + sudo_write("596", "/sys/class/kgsl/kgsl-3d0/max_clock_mhz") # setup governors sudo_write("performance", "/sys/class/devfreq/soc:qcom,cpubw/governor") diff --git a/selfdrive/hardware/tici/power_monitor.py b/selfdrive/hardware/tici/power_monitor.py index 033266f465..07362c8398 100755 --- a/selfdrive/hardware/tici/power_monitor.py +++ b/selfdrive/hardware/tici/power_monitor.py @@ -38,7 +38,6 @@ if __name__ == '__main__': voltage_average = (0, 0) # average, count current_average = (0, 0) power_average = (0, 0) - power_total_average = (0, 0) while sample_time is None or time.monotonic() - start_time < sample_time: with open("/sys/bus/i2c/devices/0-0040/hwmon/hwmon1/in1_input") as f: voltage_total = int(f.read()) / 1000. @@ -46,23 +45,23 @@ if __name__ == '__main__': with open("/sys/bus/i2c/devices/0-0040/hwmon/hwmon1/curr1_input") as f: current_total = int(f.read()) - with open("/sys/class/power_supply/bms/voltage_now") as f: - voltage = int(f.read()) / 1e6 # volts + # SOM measurements are questionable + #with open("/sys/class/power_supply/bms/voltage_now") as f: + # voltage = int(f.read()) / 1e6 # volts + #with open("/sys/class/power_supply/bms/current_now") as f: + # current = int(f.read()) / 1e3 # ma - with open("/sys/class/power_supply/bms/current_now") as f: - current = int(f.read()) / 1e3 # ma - - power = voltage*current power_total = voltage_total*current_total # compute averages - voltage_average = average(voltage_average, voltage) - current_average = average(current_average, current) - power_average = average(power_average, power) - power_total_average = average(power_total_average, power_total) + voltage_average = average(voltage_average, voltage_total) + current_average = average(current_average, current_total) + power_average = average(power_average, power_total) - print(f"{power:12.2f} mW {power_total:12.2f} mW {power_total - power:12.2f} mW") + print(f"now: {power_total:.2f} mW, avg: {power_average[0]:.2f} mW") time.sleep(0.25) + except KeyboardInterrupt: + pass finally: stop_time = time.monotonic() print("\n----------------------Average-----------------------------------") diff --git a/selfdrive/hardware/tici/test_power_draw.py b/selfdrive/hardware/tici/test_power_draw.py index 3e8323452e..fee7995038 100755 --- a/selfdrive/hardware/tici/test_power_draw.py +++ b/selfdrive/hardware/tici/test_power_draw.py @@ -10,8 +10,8 @@ from selfdrive.manager.process_config import managed_processes from selfdrive.manager.manager import manager_cleanup POWER = OrderedDict( - camerad=2.65, - modeld=1.15, + camerad=2.58, + modeld=0.90, dmonitoringmodeld=0.25, loggerd=0.45, ) diff --git a/selfdrive/test/test_onroad.py b/selfdrive/test/test_onroad.py index 9ce85097ed..c8c1a34375 100755 --- a/selfdrive/test/test_onroad.py +++ b/selfdrive/test/test_onroad.py @@ -205,7 +205,7 @@ class TestOnroad(unittest.TestCase): result += "------------------------------------------------\n" # TODO: this went up when plannerd cpu usage increased, why? cfgs = [ - ("modelV2", 0.038, 0.036), + ("modelV2", 0.050, 0.036), ("driverState", 0.050, 0.026), ] for (s, instant_max, avg_max) in cfgs: