当前位置:   article > 正文

MTK平台配置多核cpu oneline和gpu freq提升系统性能_mtk android常用的命令 gpu频率调整

mtk android常用的命令 gpu频率调整

硬件平台:MT6797

软件平台:Android 6.0

今日在调整系统跑分性能,我们的板子用的MT6797,板子起来之后,通过adb命令行,查看cpu的状态,因为是十核,因此写了一个精悍的小脚本获取各cpu状态:

#!/system/bin/sh

#echo "1" > /sys/devices/system/cpu/cpu6/online
#cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
#echo "1391000" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_setspeed

CPU_PATH=/sys/class/thermal
CPU_FREQ_BASE=/sys/devices/system/cpu

echo "#####################################"
for i in `seq 11`
do
    ((i=$i-1))
    echo "Cpu$i's Temp is: `cat $CPU_PATH/thermal_zone$i/temp`"

    online=`cat $CPU_FREQ_BASE/cpu$i/online`
    if [ $online = "1" ];then
        echo "Cpu$i's Freq is: `cat $CPU_FREQ_BASE/cpu$i/cpufreq/scaling_cur_freq`"
    else
        echo "Cpu$i is OFF"
    fi  
    echo -e "\r"
done
echo "#####################################"

push到system/bin目录,运行结果如下:

root@aeon6797_6c_m:/ # cpu_stat.sh                                             
#####################################
Cpu0's Temp is: 30000
Cpu0's Freq is: 715000

Cpu1's Temp is: 32500
Cpu1's Freq is: 715000

Cpu2's Temp is: -127000
Cpu2's Freq is: 715000

Cpu3's Temp is: 26123
Cpu3's Freq is: 715000

Cpu4's Temp is: 60000
Cpu4's Freq is: 1846000

Cpu5's Temp is: 1
Cpu5 is OFF

Cpu6's Temp is: 29000
Cpu6 is OFF

Cpu7's Temp is: 32000
Cpu7 is OFF

Cpu8's Temp is: 31300
Cpu8 is OFF

Cpu9's Temp is: 34300
Cpu9 is OFF

Cpu10's Temp is: 27700
/system/bin/cpu_stat.sh[19]: cat: /sys/devices/system/cpu/cpu10/online: No such file or directory
/system/bin/cpu_stat.sh[19]: [: 1: unexpected operator/operand
Cpu10 is OFF

#####################################

可以看到cpu0~4处于online态,后边都是offline态,通过一个设置状态的脚本把后边五个开启:

cpuset.sh如下:

#!/system/bin/sh

echo "================cpu set=================="

# 0~3 max:1391000
# 4~7 max:1846000
# 8~9 max:2314000

for i in `seq 10`
do
    ((i=$i-1))
#   ((j=$i+4))

    echo "performance" > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor

    if [ $i -ge "4" ] && [ $i -le "7" ]; then
        echo "1846000" > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_setspeed
        echo "1" > /sys/devices/system/cpu/cpu$i/online
    elif [ $i -le "3" ]; then
        echo "1391000" > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_setspeed
    else
        echo "2314000" > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_setspeed
        echo "1" > /sys/devices/system/cpu/cpu$i/online
    fi  
done

echo "================set finish================"

执行完成之后,再用第一个脚本查看结果:

root@aeon6797_6c_m:/ # cpu_stat.sh                                             
#####################################
Cpu0's Temp is: 30000
Cpu0's Freq is: 1391000

Cpu1's Temp is: 35600
Cpu1's Freq is: 1391000

Cpu2's Temp is: -127000
Cpu2's Freq is: 1391000

Cpu3's Temp is: 28626
Cpu3's Freq is: 1391000

Cpu4's Temp is: 60000
Cpu4's Freq is: 1846000

Cpu5's Temp is: 2
Cpu5's Freq is: 1846000

Cpu6's Temp is: 0
Cpu6's Freq is: 1846000

Cpu7's Temp is: 15000
Cpu7's Freq is: 1846000

Cpu8's Temp is: 42500
Cpu8's Freq is: 2314000

Cpu9's Temp is: 38000
Cpu9's Freq is: 2314000

Cpu10's Temp is: 30300
/system/bin/cpu_stat.sh[19]: cat: /sys/devices/system/cpu/cpu10/online: No such file or directory
/system/bin/cpu_stat.sh[19]: [: 1: unexpected operator/operand
Cpu10 is OFF

#####################################
可以看到cpu很雄壮的开始跑了。

GPU 频率控制相关部分稍后奉上。。。

今儿把gpu满频工作的部分追加上,具体改动如下:

--- a/kernel-3.18/drivers/misc/mediatek/base/power/mt6797/mt_gpufreq.c
+++ b/kernel-3.18/drivers/misc/mediatek/base/power/mt6797/mt_gpufreq.c
@@ -272,6 +272,7 @@ static gpufreq_ptpod_update_notify g_pGpufreq_ptpod_update_notify;
 /* Full Yield */
 /* 20160119 type = 8*/
 static struct mt_gpufreq_table_info mt_gpufreq_opp_v7_tbl_e1_0[] = {
+#if 0
        GPUOP(GPU_DVFS_FREQ1, GPU_DVFS_VOLT0, 0),
        GPUOP(GPU_DVFS_FREQ2, GPU_DVFS_VOLT1, 1),
        GPUOP(GPU_DVFS_FREQ3, GPU_DVFS_VOLT4, 2),
@@ -279,6 +280,10 @@ static struct mt_gpufreq_table_info mt_gpufreq_opp_v7_tbl_e1_0[] = {
        GPUOP(GPU_DVFS_FREQ5, GPU_DVFS_VOLT9, 4),
        GPUOP(GPU_DVFS_FREQ6, GPU_DVFS_VOLT11, 5),
        GPUOP(GPU_DVFS_FREQ8, GPU_DVFS_VOLT13, 6),
+#endif
+
+       //synative GPU always running at full speed
+       GPUOP(GPU_DVFS_FREQ0, GPU_DVFS_VOLT0, 0),

 };
 /* 20151221 type = 0*/
 static struct mt_gpufreq_table_info mt_gpufreq_opp_tbl_e1_0[] = {

gpu配置包含一个table表,分为不通的档,每档对应不通的电压值,我们就是把表配置为固定的电压和最高频率。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/773261
推荐阅读
相关标签
  

闽ICP备14008679号