vsync-app 不稳定导致抖动

news2024/11/18 1:29:40

问题描述:跟对比机器对比uc 浏览器新闻页滑动场景,出现抖动

1、trace 看是没有丢帧,对比看送帧buffer 给到 SF 步调不够一致,从间隔较大的两个 送帧buffer看,发现vsync-app 时间比正常的要长3ms 左右,vsync-app 不稳定。

从出现 vsync-app 不稳定帧,到下一个vsync-app ,看TimerDispatch 唤醒关系,已知的有两种情况:

1、 crtc_commit =》唤醒TimerDispatch

截图TimerDispatch 唤醒:

crtc_commit:161 992-992     (    992) [001] d.h.   345.231339: softirq_raise: vec=1 [action=TIMER]
crtc_commit:161 992-992     (    992) [001] d.h.   345.231341: softirq_raise: vec=9 [action=RCU]
crtc_commit:161 992-992     (    992) [001] d.h5   345.231371: sched_waking: comm=TimerDispatch pid=2689 prio=97 target_cpu=001
crtc_commit:161 992-992     (    992) [001] d.h6   345.231401: ipi_raise: target_mask=00000000,00000004 (Rescheduling interrupts)
          <idle>-0       (-------) [002] dn.1   345.231406: cpu_idle: state=4294967295 cpu_id=2
crtc_commit:161 992-992     (    992) [001] d.h6   345.231406: sched_wakeup: comm=TimerDispatch pid=2689 prio=97 target_cpu=002

crtc_commit:161 992-992     (    992) [001] d.h5   345.231371: sched_waking: comm=TimerDispatch pid=2689 prio=97 target_cpu=001


                       crtc_commit:161 992-992     (    992) [001] d.h5   345.231371: sched_waking: comm=TimerDispatch pid=2689 prio=97 target_cpu=001


                                    crtc_commit:161 992-992     (    992) [001] d.H.   345.231420: irq_handler_entry: irq=211 name=kgsl_3d0_irq
          <idle>-0       (-------) [002] d..2   345.231426: sched_switch: prev_comm=swapper/2 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=TimerDispatch next_pid=2689 next_prio=97

截图唤醒及紧接着2 处 TimerDispatch 唤醒


crtc_commit:161 992-992     (    992) [001] d.H.   345.231420: irq_handler_entry: irq=211 name=kgsl_3d0_irq
          <idle>-0       (-------) [002] d..2   345.231426: sched_switch: prev_comm=swapper/2 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=TimerDispatch next_pid=2689 next_prio=97

VizCompositor 9171-9171    (   8471) [000] d..2   345.233571: sched_waking: comm=Compositor pid=8886 prio=116 target_cpu=005
          <idle>-0       (-------) [003] d..2   345.233574: sched_switch: prev_comm=swapper/3 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=TimerDispatch next_pid=2689 next_prio=97

crtc_commit:161 992-992     (    992) [000] ....   345.239369: sde_evtlog: 992|sde_encoder_phys_cmd_prepare_for_kickoff:1574|0x39|0x0|0x1|0x0|0x2|0x0|0x0|0x0|0x0|0x0|0x0|0x0|0x0|0x0|0x0
          <idle>-0       (-------) [002] d..2   345.239369: sched_switch: prev_comm=swapper/2 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=TimerDispatch next_pid=2689 next_prio=97

2、 swapper =》唤醒TimerDispatch

这一次唤醒关系

Chrome_ChildIOT 8871-8871    (   8471) [000] d..6   345.099259: sched_wakeup: comm=VizCompositor pid=9171 prio=116 target_cpu=003
          <idle>-0       (-------) [001] dnh1   345.099260: softirq_raise: vec=1 [action=TIMER]
          <idle>-0       (-------) [002] d..1   345.099260: cpu_idle: state=0 cpu_id=2
          <idle>-0       (-------) [001] dnh1   345.099263: softirq_raise: vec=9 [action=RCU]
          <idle>-0       (-------) [003] dn.1   345.099265: irq_handler_entry: irq=1 name=IPI
          <idle>-0       (-------) [003] dn.1   345.099266: ipi_entry: (Rescheduling interrupts)
          <idle>-0       (-------) [003] dN.1   345.099268: ipi_exit: (Rescheduling interrupts)
          <idle>-0       (-------) [003] dN.1   345.099270: irq_handler_exit: irq=1 ret=handled
          <idle>-0       (-------) [003] d..2   345.099284: sched_switch: prev_comm=swapper/3 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=VizCompositor next_pid=9171 next_prio=116
          <idle>-0       (-------) [001] dnh6   345.099290: sched_waking: comm=TimerDispatch pid=s prio=97 target_cpu=001
Chrome_ChildIOT 8871-8871    (   8471) [000] d..2   345.099306: sched_waking: comm=uhk_traffic pid=8954 prio=120 target_cpu=002
          <idle>-0       (-------) [001] dnh7   345.099317: ipi_raise: target_mask=00000000,00000004 (Rescheduling interrupts)
          <idle>-0       (-------) [001] dnh7   345.099321: sched_wakeup: comm=TimerDispatch pid=w prio=97 target_cpu=002
          <idle>-0       (-------) [002] dn.1   345.099321: cpu_idle: state=4294967295 cpu_id=2
          <idle>-0       (-------) [002] dn.1   345.099325: irq_handler_entry: irq=1 name=IPI
          <idle>-0       (-------) [002] dn.1   345.099327: ipi_entry: (Rescheduling interrupts)
          <idle>-0       (-------) [002] dN.1   345.099328: ipi_exit: (Rescheduling interrupts)
          <idle>-0       (-------) [002] dN.1   345.099329: irq_handler_exit: irq=1 ret=handled
Chrome_ChildIOT 8871-8871    (   8471) [000] d..3   345.099330: sched_wakeup: comm=uhk_traffic pid=8954 prio=120 target_cpu=002
          <idle>-0       (-------) [001] dnh1   345.099334: irq_handler_exit: irq=11 ret=handled
Chrome_ChildIOT 8871-8871    (   8471) [000] d..2   345.099336: sched_waking: comm=VizCompositor pid=9171 prio=116 target_cpu=003
          <idle>-0       (-------) [002] d..2   345.099339: sched_switch: prev_comm=swapper/2 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=TimerDispatch next_pid=2689 next_prio=97
          <idle>-0       (-------) [001] dnH1   345.099347: irq_handler_entry: irq=211 name=kgsl_3d0_irq
          <idle>-0       (-------) [001] dnH4   345.099363: sched_waking: comm=kgsl_dispatcher pid=962 prio=49 target_cpu=002
          

往前一次唤醒vsync-sf 关系

GPU completion 13438-13438   (   7730) [002] d..2   345.090390: sched_switch: prev_comm=GPU completion prev_pid=13438 prev_prio=110 prev_state=S ==> next_comm=swapper/2 next_pid=0 next_prio=120
          <idle>-0       (-------) [002] d..1   345.090410: cpu_idle: state=0 cpu_id=2
          <idle>-0       (-------) [001] d..1   345.090413: cpu_idle: state=4294967295 cpu_id=1
          <idle>-0       (-------) [001] d.h1   345.090420: irq_handler_entry: irq=11 name=arch_timer
          <idle>-0       (-------) [001] d.h6   345.090427: sched_waking: comm=TimerDispatch pid=2689 prio=97 target_cpu=001
    <idle>-0       (-------) [001] dNh7   345.090447: sched_wakeup: comm=TimerDispatch pid=2689 prio=97 target_cpu=001
    <idle>-0       (-------) [001] d..2   345.090470: sched_switch: prev_comm=swapper/1 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=TimerDispatch next_pid=2689 next_prio=97

1、跟显示关系

vsync-app   crtc_commit =》唤醒TimerDispatch   时间太长,可以看得到最后刷新到屏内容延长了,不稳定。

2、vsync-app   不稳定,是由于epoll  SF 中 fd 时,由于设置的timer 时间到了,而写fd 内容延迟,导致epoll 延迟从而vsync 不稳定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/451784.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络交换机端口管理工具

如今&#xff0c;企业或组织级网络使用数百个交换机端口作为其 IT 基础架构的一部分来实现网络连接。这使得交换机端口管理成为日常网络管理任务的一部分。传统上&#xff0c;网络管理员必须依靠手动网络交换机端口管理技术来跟踪交换机及其端口连接状态。这种手动任务弊大于利…

基于斯坦福大学开源,从零搭建chatGPT

下载地址&#xff1a; https://huggingface.co/datasets/togethercomputer/RedPajama-Data-1T 预处理仓库&#xff1a;https://github.com/togethercomputer/RedPajama-Data 复刻ChatGPT&#xff01;斯坦福等开启红睡衣计划&#xff0c;开源1.2万亿token训练集 【新智元导读…

JAVA队列(Queue)用法附实例讲解

队列是什么 队列用于模拟队列这种数据结构&#xff0c;队列通常是指“先进先出”的容器。新元素插入&#xff08;offer&#xff09;到队列的尾部&#xff0c;访问元素&#xff08;poll&#xff09;操作会返回队列头部的元素。通常&#xff0c;队列不允许随机访问队列中的元素 …

【JavaWeb】Servlet(崔老师版)

文章目录 1.概述1.1 JavaWeb三大组件1.2 Servlet作用 2.ServletConfig接口3.Servlet接口3.1 实现Servlet的方式3.2 Servlet生命周期 4.HttpServlet抽象类6.ServletContext5.1 概述5.2 获取ServletContext5.3 JavaWeb四大域对象5.4 获取应用初始化参数5.5 ServletContext获取资源…

【UML建模】时序图(Sequence Diagram)

文章目录 1.概述2.时序图的组成元素2.1.角色&#xff08;Actor&#xff09;2.2.实体和对象2.3.生命周期线&#xff08;Lifeline&#xff09;2.3.1.激活&#xff08;Activation&#xff09;2.3.2.消息&#xff08;Messages&#xff09;2.3.3.组合片段&#xff08;Fragments&…

learn C++ NO.1——命名空间域、输入输出、函数重载

前言 什么是C C&#xff08;c plus plus&#xff09;是一种计算机高级程序设计语言&#xff0c;由C语言扩展升级而产生&#xff0c;最早于1979年由本贾尼斯特劳斯特卢普在AT&T贝尔工作室研发。C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的…

Cache存储系统详解(全相联映射、直接映射、组相联映射、替换策略和性能计算)

1. 存储系统的层次结构 为了解决容量、速度和价格之间的矛盾&#xff0c;把各种不同存储容量&#xff0c;不同存取速度&#xff0c;不同价格的存储器&#xff0c;按照一定的体系结构组织起来&#xff0c;使所存放的程序和数据按层次分布在各存储器中&#xff0c;形成---多层次的…

读书笔记//《数据科学工程实践》

出版时间&#xff1a;2021年11月 副标题&#xff1a;用户行为分析、A/B实验、SQLFlow 作者们是一线互联网企业的数据科学家、数据分析师和算法工程师&#xff0c;主要就职于滴滴、部分就职于腾讯、快手等。 点评&#xff1a;神仙下凡布道。感谢大佬们的分享。本书让我领略了大厂…

小白也能看懂,解读数据中台

不同的企业对数据有不同的需求。企业数据应用不断更新迭代&#xff0c;企业的中台系统也需要不断变化。从数据处理与数据治理两个维度出发&#xff0c;可以设计一个解耦的数据中台体系架构。该数据中台体系架构具有一定的柔性&#xff0c;可按照企业应用需求进行组合&#xff0…

多语言(CurlPHPPHPsdkJAVAC#Python)调用阿里巴巴商品API接口

2月2日消息&#xff0c;《晚点LatePost》独家报道&#xff0c;阿里集团国内批发业务1688近期完成了一系列组织和业务调整。其中&#xff0c;原1688商贸发展中心和产地发展中心合并为1688商家发展中心&#xff0c;由原商贸发展中心总经理王强负责&#xff1b;1688新成立分销供应…

苹果天气应用专利获批,苹果Find My技术改变防丢技术走向

根据美国商标和专利局&#xff08;USPTO&#xff09;公示的清单&#xff0c;苹果近日获得了名为“用于管理天气信息的用户界面”专利&#xff0c;编号为 US 11630559 B2。 苹果在专利描述中表示&#xff0c;部分管理天气信息的技术复杂且效率低下&#xff0c;用户需要多次点击…

spring redis Sentinel 哨兵 原理

客户端选择 redis 常用的连接客户端 有三个 Jedis&#xff1a;是老牌的Redis的Java实现客户端&#xff0c;提供了比较全面的Redis命令的支持&#xff0c;Redisson&#xff1a;实现了分布式和可扩展的Java数据结构。Lettuce&#xff1a;高级Redis客户端&#xff0c;用于线程安…

el-table合计功能滚动条层级问题

问题描述 版本&#xff1a;2.15.13 el-table在使用合计功能及固定列功能的同时&#xff0c;由于固定列的结构是固定区域增加了div加上定位&#xff0c;用来盖住下面的内容。当使用了合计功能的时候滚动条的区域在el-table__body-wrapper会导致固定列区域下的滚动条被挡住&…

计算机网络三:运输层

一、运输层 1. 概述 运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信功能&#xff0c;使得不同主机好像直接连在一起一样 运输层协议是在端系统中而不是在路由器中实现的。网络路由器仅作用于网络层分组(即数据报)的网络层字段&#xff0c;而不检查封装在该数据报…

微搭低代码学习之数据展示

低代码平台是一个快速发展的领域&#xff0c;未来有着广阔的发展前景。以下是一些低代码平台未来的发展方向&#xff1a; 1.人工智能和机器学习 随着人工智能和机器学习技术的不断发展&#xff0c;低代码平台将能够更好地利用这些技术来提高应用程序的智能化和自动化水平。例如…

APP渗透—绕过反代理、反证书检测

APP渗透—绕过反代理、反证书检测 1. 前言1.1. 无法获取数据包情况 2. 反代理2.1. 反代理情况2.1.1. 某牛牛反代理2.1.2. 某探反代理 2.2. 绕过反代理2.2.1. Proxifier设置2.2.1.1. 设置代理服务器2.2.1.2. 配置代理规则2.2.1.3. 检测状态 2.2.2. 抓包测试 2.3. 总结 3. 反证书…

用HTML+CSS简单的画一个支付宝页面(超详细)

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;老茶icon &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;计…

Pyqt实现合并PDF遇到的问题集合

1.exit code -1073740791报错 pycharm遇到如下报错&#xff1a; “Process finished with exit code -1073740791 (0xC0000409)” 就是遇到这种问题就不知道问题在哪里&#xff0c;有点摸不着头脑 解决措施&#xff1a; 1.点击导航栏“Run”后选择“Edit Configurations” …

Python机器学习、深度学习技术提升气象、海洋、水文领域实践应用

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;在数据处理、科学计算、数学建模、数据挖掘和数据可视化方面具备优异的性能&#xff0c;这些优势使得Python在气象、海洋、地理、气候、水文和生态等地学领域的科研和工程项目中得到广泛应用。可以…

Keil使用 fromelf 生成bin文件

一、语法格式如下&#xff1a; fromelf [options] input_file [options] 选项如下&#xff0c;可以组合使用&#xff0c;两者之间用空格隔开&#xff1a; 二、在Keil中的使用过程 1、配置Output&#xff0c;生成可执行文件 aa即为可执行文件名&#xff0c;后缀为axf。…