Registered User mNo edit summary |
Registered User mNo edit summary |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{ApplicableFor | {{ApplicableFor | ||
|MPUs list=STM32MP15x | |MPUs list=STM32MP15x, STM32MP25x | ||
|MPUs checklist=STM32MP13x, STM32MP15x | |MPUs checklist=STM32MP13x, STM32MP15x, STM32MP25x | ||
}} | }} | ||
When a GPU animation is running on the display, the related GCNANO estimated GPU load can be monitored from the GCNANO driver level, by using the following command: | ==Basic usage== | ||
When a GPU-based animation is running on the display, the related GCNANO estimated GPU load can be monitored from the GCNANO driver level, by using the following command: | |||
{{Board$}} (while true; do | {{Board$}} (while true; do | ||
gpu1=$(cat /sys/kernel/debug/gc/idle); \ | gpu1=$(cat /sys/kernel/debug/gc/idle); \ | ||
Line 18: | Line 19: | ||
</pre> | </pre> | ||
== Tips == | |||
* Stop monitoring the GPU load with the command "'''kill -9 `ps -o ppid= -C sleep`'''". | * Stop monitoring the GPU load with the command "'''kill -9 `ps -o ppid= -C sleep`'''". This command may not work depending on your system configuration (busybox ps features, sh shell configuration...). Alternative method is to use the command "'''fg'''" followed by "'''CTRL+C'''" in your terminal. | ||
* Adjust the GPU load update period by modifying the "sleep" value (4 seconds in the | * {{Highlight|Debugfs<ref>[[Debugfs]]</ref> configuration needs to be enabled}} in order to be able to monitor the GPU load from the debug directory "/sys/kernel/debug/gc". | ||
* Use the command "dmesg -n8" to mix both user and kernel console outputs | * Adjust the GPU load update period by modifying the "sleep" value (4 seconds in the above examples). | ||
* Use the dmesg<ref>[[Dmesg and Linux kernel log]]</ref> command "'''dmesg -n8'''" to mix both user and kernel console outputs. | |||
* The detailed calculation is: GPU load = (On-previous_On) / (Total-previous_Total) with Total=On+Off+Idle+Suspend, all variables coming from the command: | * The detailed calculation is: GPU load = (On-previous_On) / (Total-previous_Total) with Total=On+Off+Idle+Suspend, all variables coming from the command: | ||
{{Board$}} cat /sys/kernel/debug/gc/idle | {{Board$}} cat /sys/kernel/debug/gc/idle | ||
Line 30: | Line 31: | ||
Suspend: 1,242,043,838,898 ns | Suspend: 1,242,043,838,898 ns | ||
... | ... | ||
==References== | |||
<references/> | |||
<noinclude> | <noinclude> |
Latest revision as of 17:18, 26 October 2023
1. Basic usage
When a GPU-based animation is running on the display, the related GCNANO estimated GPU load can be monitored from the GCNANO driver level, by using the following command:
Board $> (while true; do
gpu1=$(cat /sys/kernel/debug/gc/idle); \
sleep 4; \
gpu2=$(cat /sys/kernel/debug/gc/idle); \
echo $gpu1 $gpu2 | tr -d '\n' | tr -d ',' | tr -d 'ns' | awk -F" " '{printf("gpu load %.0f%%\n", ($10-$2)*100/($10+$12+$14+$16-$2-$4-$6-$8))}'; \
done) &
The GCNANO estimated GPU load is then periodically output in the user console as a percentage "%":
gpu load 75%
gpu load 75%
gpu load 75%
2. Tips
- Stop monitoring the GPU load with the command "kill -9 `ps -o ppid= -C sleep`". This command may not work depending on your system configuration (busybox ps features, sh shell configuration...). Alternative method is to use the command "fg" followed by "CTRL+C" in your terminal.
- Debugfs[1] configuration needs to be enabled in order to be able to monitor the GPU load from the debug directory "/sys/kernel/debug/gc".
- Adjust the GPU load update period by modifying the "sleep" value (4 seconds in the above examples).
- Use the dmesg[2] command "dmesg -n8" to mix both user and kernel console outputs.
- The detailed calculation is: GPU load = (On-previous_On) / (Total-previous_Total) with Total=On+Off+Idle+Suspend, all variables coming from the command:
Board $> cat /sys/kernel/debug/gc/idle
On: 2,071,009,284,477 ns
Off: 11,480,071,864,263 ns
Idle: 0 ns
Suspend: 1,242,043,838,898 ns
...
3. References