当前位置: 首页 > news >正文

网站维护中页面模板广州网站建设公司推荐

网站维护中页面模板,广州网站建设公司推荐,网站开发商城1688,鲜花电商网站开发1. 功耗现象 灭屏情况下#xff0c;飞行模式静音模式插耳#xff0c;播放音乐#xff0c;电流异常 1.1测试数据 飞行模式静音模式插耳机 原生音乐播放器 DriverOnly 32.5mA User版本 45mA 1.2 电流波形现象 上述看怀疑 CPU 未进入 Deep idle 导致#xff1f; 2. …1. 功耗现象 灭屏情况下飞行模式静音模式插耳播放音乐电流异常 1.1测试数据 飞行模式静音模式插耳机 原生音乐播放器 DriverOnly 32.5mA User版本 45mA 1.2 电流波形现象 上述看怀疑 CPU 未进入 Deep idle 导致 2. Deep idle 分析 Deep idle是一种CPU进入空闲后的状态也就是在idle进程执行的。简单地说MTK会在CPU进入空闲的情况下再去关闭一些不必要的power domain以达到最省电的目的。通俗的理解就是CPU的空闲状态即 CPU0 单核运行其他CPUX不运行即处于关核状态 2.1 是否能进 Deep idle 1.方法 写入一个不释放的锁查看待机电流和kernel日志 ·adb shell echo test /sys/power/wake_lock 2.测试现象 测试机的电流还是比参考机大即无法进入 Deep idle 状态 2.2 分析 deep idle被block的情况 1.看CNT(dpidle,rgidle)如果dpidle一点没变说明从没进过deep idle有变化也不说明一定是正常的要看变化的量。 2.再看 dpidle_block_cnt 这一组数值的增加值一般可以看到每个blocker的计数都有所增加关键要看哪个是主要的 ·如果主要是cpu说明系统不只一颗cpu在运行检查cpu loading ·如果主要是tmr说明有任务繁忙调度比较频繁检查cpu loading ·如果主要是clk那么看dpidle_block_maskbit不为0的clk id就是嫌疑对象。 以下是 Kernel 日志 灭屏时间段为 13:39:57 ~ 14:17:31 6[  187.391041]  (0)[180:wdtk-0][thread:180][RT:187391030060] 2019-06-06 13:39:59.895301 UTC;android time 2019-06-06 13:39:59.895301 4[  187.524049] -(0)[0:swapper/0][Power/swap]CNT(dpidle,rgidle): [0] (0,252679), [1] (0,43671), [2] (0,36229), [3] (0,30398),  4[  187.524068] -(0)[0:swapper/0][Power/swap]dpidle_block_cnt: [by_cpu] 43533, [by_clk] 17433, [by_tmr] 0, [by_oth] 0, [by_vtg] 0, [by_frm] 0,  4[  187.524089] -(0)[0:swapper/0][Power/swap]dpidle_block_mask: 0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00000000, 0x00000010, 0x00002c03, 0x0000000c, 0x00000000, 0x00000000, 0x00000000, 0x00000000,  根据上述日志发现导致无法进入Deep idle原因是 dpidle_block_cnt: [by_cpu] 为主CPU loading大导致如何查cpu loading具体情况这里的CPU loading信息我们需要抓Ftrace文件进行分析 3. Ftrace分析 抓取日志见其他博客的 Ftrace 抓取方法可以使用本文的sh脚本 #!/system/bin/sh rm -rf /sdcard/idle_log/* mkdir /sdcard/idle_log; i0; while [ i -le 3000 ]; do ## cat $i; echo $i  /sdcard/idle_log/dpidle_state.txt; echo $i  /sdcard/idle_log/soidle_state.txt; echo $i  /sdcard/idle_log/idle_state.txt; echo $i  /sdcard/idle_log/cpu.txt; i$(($i1)); ## print looping counts cat /sys/kernel/debug/cpuidle/dpidle_state  /sdcard/idle_log/dpidle_state.txt; cat /sys/kernel/debug/cpuidle/soidle_state  /sdcard/idle_log/soidle_state.txt; cat /sys/kernel/debug/cpuidle/idle_state  /sdcard/idle_log/idle_state.txt; ## cat /sys/devices/system/cpu/cpufreq/all_time_in_state /sdcard/idle_log/cpu.txt echo cpu_online_info  /sdcard/idle_log/cpu.txt; cat /sys/devices/system/cpu/online  /sdcard/idle_log/cpu.txt; ## cat /sys/devices/system/cpu/cpu0/online /sdcard/idle_log/cpu.txt; cat /sys/devices/system/cpu/cpu1/online  /sdcard/idle_log/cpu.txt; cat /sys/devices/system/cpu/cpu2/online  /sdcard/idle_log/cpu.txt; cat /sys/devices/system/cpu/cpu3/online  /sdcard/idle_log/cpu.txt; ##busybox usleep 2000000; sleep 2; done 查看 Ftrace 分析结果在Google浏览器输入下述调试网址即可加载Ftrace文件 ·chrome://tracing/ 综合上述不管是使用Ftrace 还是使用脚本工具都检查到灭屏情况功耗异常的机器无法进入Deep idle状态且cpu loading 大且2个CPU运行由于这个问题是4.28号的修改导致即内部改出来的问题是否CPU策略变更 4. CPU的实验测试 做一个 Disable CPU hotplug 实验 adb shell echo 0 /proc/hps/enabled 关闭 CPU hotplug机器电流恢复正常了 5. 查看CPU相关修改记录 ·git diff e7a305d576a44042c8fa4f36c57b1a4e9ebdf515 961171a11857523e1296b6ba572cbbc55582d73e 发现确实存在 CPU_hotplug 相关的修改记录 userchuanghangren-Lenovo-Product:/local/sda/local_sourcecode/xxx/kernel-4.9-lc$ git diff e7a305d576a44042c8fa4f36c57b1a4e9ebdf515 961171a11857523e1296b6ba572cbbc55582d73e diff --git a/drivers/misc/mediatek/include/mt-plat/mt_hotplug_strategy_internal.h b/drivers/misc/mediatek/include/mt-plat/mt_hotplug_strategy_internal.h index b250cca..bad7a20 100755 --- a/drivers/misc/mediatek/include/mt-plat/mt_hotplug_strategy_internal.h b/drivers/misc/mediatek/include/mt-plat/mt_hotplug_strategy_internal.h -22,7 22,7  /* CONFIG - compile time */ #define HPS_TASK_PRIORITY              (MAX_RT_PRIO - 3) -#define HPS_TIMER_INTERVAL_MS          100 #define HPS_TIMER_INTERVAL_MS          20 #define HPS_PERIODICAL_BY_WAIT_QUEUE        (1) #define HPS_PERIODICAL_BY_TIMER             (2) -35,17 35,17  #define CPU_DMIPS_BIG_LITTLE_DIFF      70 /* CONFIG - runtime (execute time interval : 100 ms */ -#define DEF_CPU_UP_THRESHOLD           95 -#define DEF_CPU_UP_TIMES               2 -#define DEF_CPU_DOWN_THRESHOLD         85 -#define DEF_CPU_DOWN_TIMES             8 #define DEF_CPU_UP_THRESHOLD           75 #define DEF_CPU_UP_TIMES               1 #define DEF_CPU_DOWN_THRESHOLD         30 #define DEF_CPU_DOWN_TIMES             50 #define DEF_TLP_TIMES                  1 #define EN_CPU_INPUT_BOOST             1 #define DEF_CPU_INPUT_BOOST_CPU_NUM    2 #define EN_CPU_RUSH_BOOST              1 -#define DEF_CPU_RUSH_BOOST_THRESHOLD   98 #define DEF_CPU_RUSH_BOOST_THRESHOLD   80 #define DEF_CPU_RUSH_BOOST_TIMES       1 #define EN_HPS_LOG                     1 查看具体修改原因产品需要dEQP-EGL CTS测试就必须合入此patch不然会导致CTS fail。这块芯片比较久了性能不太好需要尽量的去开核 确保perfect CPU hotplug 的patch会导致dEQP-EGL CTS fail。具体如下 [Initial condition] 1. [gms]_alps-mp-p0.mp user 2. Select stay awake 3. Lock screen select none 4. connect WiFi AP [Steps] 1. run cts in windows 2. input “run cts -m CtsDeqpTestCases -t dEQP-EGL.functional.get_frame_timestamps* [Actual Result] dEQP-EGL.functional.get_frame_timestamps#rgb565_depth_no_stencil fail with config {glformatrgba8888d24s8ms0,rotationunspecified,surfacetypewindow,requiredtrue} Fail: Buffer displayed before rendering completed.!(1292160634076  -2)  dEQP-EGL.functional.get_frame_timestamps#rgb565_depth_stencil fail  with config {glformatrgba8888d24s8ms0,rotationunspecified,surfacetypewindow,requiredtrue}  Fail: Composite to present latency is more than 3 vsyncs.!(57889844  49642383)  dEQP-EGL.functional.get_frame_timestamps#rgb888_depth_stencil fail  with config {glformatrgba8888d24s8ms0,rotationunspecified,surfacetypewindow,requiredtrue}  Fail: Composite to present latency is more than 3 vsyncs.!(57920384  49665288)  dEQP-EGL.functional.get_frame_timestamps#rgb888_no_depth_no_stencil fail  with config {glformatrgba8888d24s8ms0,rotationunspecified,surfacetypewindow,requiredtrue}  Fail: Buffer displayed before rendering completed.!(1305430597769  -2)  dEQP-EGL.functional.get_frame_timestamps#rgba8888_depth_no_stencil fail  with config {glformatrgba8888d24s8ms0,rotationunspecified,surfacetypewindow,requiredtrue}  Fail: Composite to present latency is more than 3 vsyncs.!(57916176  49662132)  dEQP-EGL.functional.get_frame_timestamps#rgba8888_depth_stencil fail  with config {glformatrgba8888d24s8ms0,rotationunspecified,surfacetypewindow,requiredtrue}  Fail: Composite to present latency is more than 3 vsyncs.!(57910252  49657689)  dEQP-EGL.functional.get_frame_timestamps#rgba8888_no_depth_no_stencil fail  with config {glformatrgba8888d24s8ms0,rotationunspecified,surfacetypewindow,requiredtrue}  Fail: Composite to present latency is more than 3 vsyncs.!(57910944  49658208)  基于产品需求定义需确保 CTS 测试通过故维持该 CPU hotplug 修改策略。
http://www.hkea.cn/news/14530609/

相关文章:

  • 网站建设优化公司网页加速器免费下载
  • 呼和浩特免费制作网站织梦网站如何做seo
  • 优质采官方网站安徽外径建设集团小程序接入wordpress
  • 连云港市城乡建设管理局网站企业网站托管新趋势
  • 无证做音频网站违法吗威海教育行业网站建设
  • 公司网站建设的心得网站开发难不难
  • 响应式网站模板dede网站建设的 文献综述
  • 济南想做网站建设网站的工具是什么
  • 网站开发要松江品划网站建设维护
  • 青岛公司建设网站优化设计四年级上册语文答案
  • 织梦cms网站一条视频可以多平台发布吗
  • 西安网站建设流程商丘网络推广公司
  • 公司网站可以做无形资产么哈尔滨seo优化排名免费咨询
  • 营销型网站有哪些代表天津城市建设招标网站
  • 手机网站图片切换特效做一网站需要哪些语言
  • 佛山网站优化公司排名异次元wordpress模板
  • 做网站维护需要懂什么网络营销推广方法
  • 网站建设价格优 秀乐云seowordpress订阅支付
  • 站长工具seo综合查询分析短视频推广计划
  • 上海网站建设seo推广不备案 网站 盈利
  • 门户网站改版方案中国室内设计联盟登录
  • 宝思哲手表网站模板网站开发营销
  • 教学网站前台模板怎么找需要推广的商家
  • 做相册的网站有哪些如何选择做pc端网站
  • 网站建设和淘宝店装修是不是一样wordpress文章链接
  • 购物网站cookie全国网站建设
  • 山东住房和城乡建设厅网站主页wordpress配置文件是
  • 上住房和城乡建设部网站美食网站开发可行性分析报告
  • 深圳专业网站开发C 做的窗体怎么变成网站
  • 网站排名稳定后后期如何优化国外做问卷调查的网站