彭伟林:火焰图、trace工具、dma-buf和图书推荐

Linux阅码场 2022-04-08 08:00

会员招募:本篇为阅码场内核性能与稳定性微信专业群内容小结 (20220405)。本群定位内核性能与稳定性技术交流,覆盖云/网/车/机/芯领域资深内核专家,由阅码场资深讲师彭伟林主持。会员费为88元/季度,权益包含群内提问线下活动8折全年定期免费群技术分享(每次点播价为19元/次),有意加入请私信客服小月(小月微信号:linuxer2016)。

火焰图中就是找不到函数名,怀疑符号被优化

提问:yly

参与:自行车 成不晒ᯤ⁶ᴳ

  • 你这个图是有的内核函数还是基本全部符号看不到,用的系统自带的perf的话可以考虑下载对应内涵源码,自己把perf在机器上重新编译一下,我自己已经遇到这个问题好几次了

  • 加noinline强制编译器不要inline

Linux Trace 系统介绍

提问:李泉

参与:广成子 guoqiang Gang 游~游~游 pwl999 乘风破浪的凌杰

  • mindjet mindmanager  画的架构图:

  • 有使用 atrace+prefetto+sql 前端工具组合

Vmcore 分析工具

提问:游~游~游

参与:pwl999

  • crash

  • linux-ramdump-parser

  • VAATools

死机后查看 Trace 日志

提问:晴天

参与:Gang ~jeff CH

  • crash工具支持扩展的trace命令,如果有kdump的话,可以使用crash> trace show显示trace日志

SOC 增加 Kdump 机制支持

参与:CH pwl999

  • Linux Kdump 机制详解

栈空间的变量被踩定位

提问:Li

栈空间的变量进入函数时不为空,到某一处就变为空了,中间没有对该变量的操作

参与:LittleEmpero 李佳龙 Gang ~jeff pwl999

大概率是运行时栈内存被踩了。

  • 如果地址恒定,可以尝试用gdb watch命令捕捉:

  1. // 先打印这个栈变量的地址

  2. p &stack_var

  3. 0x12345678


  4. // 然后

  5. watch *(long*)0x12345678

  • 栈空间的变量,切换栈,地址就变了?可以尝试把watch和command命令一起用,在函数入口下个断点,在command里下watch,这就相当于动态下观测点,这样跑一晚上估计明天来了就看到踩内存的现场了。

  • watch失效后,程序就停止了,怎么让它继续往下?在函数退出的地方,或者说在watch失效前的地方,再加个断点,在这个断点的command里把观测点删掉。通常情况下,源代码维度即使有多个返回点,编译成指令后,就只有一个返回点,所有的return都会通过jxx指令跳到唯一返回点,当然通常情况下是这样。可以用disass指令对函数反汇编,然后看看ret指令是不是唯一的,如果ret指令是唯一的,就在ret指令前面用 b*0x12345678这种语法,打一个绝对地址断点。

  • 没有单独delete watchpoints,del all就会把断点这都删除了。

  • 可以试下objtrace。可以设置一个跟踪点,把一个函数参数设置为跟踪点,如果在其它地方访问到(经过了其它的函数参数)会被捕捉到。Introduce objtrace trigger to trace the kernel object

objtrace

  • objtrace

  • Introduce objtrace trigger to trace the kernel object

  • 谢欢:向linux内核引进object trace

gdb 录制执行

参与:Li LittleEmpero

  • rr-project

handlespeculativefault

提问:viho he参与:LittleEmpero 郑杨

  • 投机性缺页异常处理

cache false sharing 定位

提问:nicolas参与:kaka 李佳龙 天空微蓝 pwl999

  • perf抓取cache miss类的event吧,再分析pc之间的关系,有没有可能是false sharing 造成的

  • perf c2c

虚拟内存增长怎么分析

提问:Gang

参与:LittleEmpero rocklee viho he nicolas pwl999

  • 感觉虚拟内存即使泄露了应该也没啥风险,64位系统,虚拟地址空间大得很。不过不可否认这肯定不正常,代码肯定有问题。

  • 每隔一段时间cat 一下/proc/PID/smap,然后对比之前的,先看看是哪段地址在增长。是mmap忘了unmap,还是系统堆区在不断增长,然后再具体分析。

  • 手机上虚拟内存可以直接看maps,结合smaps进行分类,和对应物理内存大小,pc上应该也是类似。

  • 或许倒是可以从slab来查,到底是谁在申请大量虚拟内存?vmareastructs。

  • Memory Overcommit

性能书籍推荐

参与:viho he guoqiang



soft lockup / hard lockup 定义

提问:游~游~游

参与:自行车 pwl999

  • softlockup是抢占被关了,hardlockup是中断被关了

如果一个内核线程关中断(不持有锁,只是关中断)并且睡眠,会发生什么?

提问:viho he

参与:~jeff pwl999

  • 关中断的情况下, 如果发生调度,schedule()就会打开中断,会引入中断重入的问题,也对sched out进程在不知情的情况下打开了中断

huge page 对性能的提升

提问:viho he

参与:自行车 pwl999

  • huge page只是影响了tlb,对cache无影响吧

  • 我们为什么要禁用 THP

  • Huge Page 是否是拯救性能的万能良药?

linux 内核支持硬中断的嵌套吗?

提问:hw

参与:郑杨 木子丶棒

  • Linux的中断可以嵌套吗?

FPGA开发者和内核开发者打通

参与:guoqiang hw 小林

  • pmu 和 Ftrace 是两把钥匙

  • 当你去主导一个基于zynq的图像质检项目,你就会发现,负责项目研发的人如果有一个全通的,会事半功倍

  • 整个华东区未来是全世界的电动车产业集群,上海需要大量这样的人,房子都不一定能赶上这类人才的薪资增长率。

  • AI和HPC是性能需求的推动者。其实还有个需求是美国实体名单带来的,比如原来7nm的处理器,美国非不让你,你就只能28nm,怎么在28nm的芯片上跑出来更高的性能。

AI 算法书籍推荐

参与:CH guoqiang

  • 有两个细分方向,如果图像就是冈萨雷斯的数字图像处理,如果是机器学习,就是周志华的西瓜书:

  • 这一本作为通识 了解入门级来看 看全貌用的:

  • 这一本再看具体分类:(其它的 在深入细分方向就看paper 综述、做实验)



  • 再往后 往深的走,就需要补数学了,优化理论等:(目前人工智能的本质其实就是求解优化问题,获取次优解)


dma-buf

参与:guoqiang viho he Peter 孙雷 Oops Wenhui

  • dma-buf的底层机制,安卓的ION也是基于此搭建出来的。但是ION在staging过程中受阻 ,最终upstream放弃了合入ION,而由John Stultz主领,在同样的dma-buf机制上,做了一个叫DMA-BUF Heaps的东西来替代ION。安卓社区也列了相应计划从ION迁移到DMA-BUF Heaps:LVC21-120 Moving to DMA BUF Heaps Now is the time!,从dma-buf往上,ION也好,dma-buf heaps也罢,这一整套方案就是想搞定数据在这些众多硬件之间流转的 零拷贝难题:


  • 啥应用场景有这样的需求呢?目前需求最大的就是图形图像领域,图像这种大数据处理不共享太慢,dma来回搬太慢。这个图里,7个硬件全要在同一块数据上做读写。如果用拷贝、搬运的话,想想这个性能损耗有多大,分析以后,可能还要送给GPU去绘图(比如手机上人脸识别,打出来的那个框就是GPU绘的)。

  • 在图像处理的时候,比如一帧图像,可能会经过isp, 畸变校正,缩放裁剪,最后可能会送到ai模块作分析 这个过程中的每个环节几乎都是硬件来完成的,如果单纯的使用dma来搬数据,效率就很低了。

  • TEE也来做零拷贝,会不会有安全隐患?share memory本来就是暴露给linux(REE)的,本来就是安全薄弱的环节。加上Infirmation flow integrity tag checking 就可以安全的share了 Google doc怎么share 内存就可以怎么share。

  • dma-buf学习分享

  • Destaging ION

  • DMA-BUF系列文章

  • 宋宝华:世上最好的共享内存(Linux共享内存最透彻的一篇)

RR实时调度策略,时间片一般是多少?

提问:rocklee

参与:pwl999 viho he


  • Linux schedule 2、调度算法

  • 有没有这种变态用法?A B线程同一优先级,A线程是fifo调度,B线程是RR调度,这时系统怎么调度?看了一下代码,同一优先级是按先后顺序放在同一个链表上的,如果当前进程是 FIFO 会一直跑完为止,如果当前进程是 RR 时间片用完换链表上的下一个进程。涉及到的关键函数有 tasktickrt()、picknextrtentity()、enqueuert_entity()。


Linux阅码场 专业的Linux技术社区和Linux操作系统学习平台,内容涉及Linux内核,Linux内存管理,Linux进程管理,Linux文件系统和IO,Linux性能调优,Linux设备驱动以及Linux虚拟化和云计算等各方各面.
评论
  • ARMv8-A是ARM公司为满足新需求而重新设计的一个架构,是近20年来ARM架构变动最大的一次。以下是对ARMv8-A的详细介绍: 1. 背景介绍    ARM公司最初并未涉足PC市场,其产品主要针对功耗敏感的移动设备。     随着技术的发展和市场需求的变化,ARM开始扩展到企业设备、服务器等领域,这要求其架构能够支持更大的内存和更复杂的计算任务。 2. 架构特点    ARMv8-A引入了Execution State(执行状
    丙丁先生 2025-01-12 10:30 486浏览
  • 数字隔离芯片是现代电气工程师在进行电路设计时所必须考虑的一种电子元件,主要用于保护低压控制电路中敏感电子设备的稳定运行与操作人员的人身安全。其不仅能隔离两个或多个高低压回路之间的电气联系,还能防止漏电流、共模噪声与浪涌等干扰信号的传播,有效增强电路间信号传输的抗干扰能力,同时提升电子系统的电磁兼容性与通信稳定性。容耦隔离芯片的典型应用原理图值得一提的是,在电子电路中引入隔离措施会带来传输延迟、功耗增加、成本增加与尺寸增加等问题,而数字隔离芯片的目标就是尽可能消除这些不利影响,同时满足安全法规的要
    华普微HOPERF 2025-01-15 09:48 107浏览
  •   在信号处理过程中,由于信号的时域截断会导致频谱扩展泄露现象。那么导致频谱泄露发生的根本原因是什么?又该采取什么样的改善方法。本文以ADC性能指标的测试场景为例,探讨了对ADC的输出结果进行非周期截断所带来的影响及问题总结。 两个点   为了更好的分析或处理信号,实际应用时需要从频域而非时域的角度观察原信号。但物理意义上只能直接获取信号的时域信息,为了得到信号的频域信息需要利用傅里叶变换这个工具计算出原信号的频谱函数。但对于计算机来说实现这种计算需要面对两个问题: 1.
    TIAN301 2025-01-14 14:15 121浏览
  • PNT、GNSS、GPS均是卫星定位和导航相关领域中的常见缩写词,他们经常会被用到,且在很多情况下会被等同使用或替换使用。我们会把定位导航功能测试叫做PNT性能测试,也会叫做GNSS性能测试。我们会把定位导航终端叫做GNSS模块,也会叫做GPS模块。但是实际上他们之间是有一些重要的区别。伴随着技术发展与越发深入,我们有必要对这三个词汇做以清晰的区分。一、什么是GPS?GPS是Global Positioning System(全球定位系统)的缩写,它是美国建立的全球卫星定位导航系统,是GNSS概
    德思特测试测量 2025-01-13 15:42 524浏览
  • 随着数字化的不断推进,LED显示屏行业对4K、8K等超高清画质的需求日益提升。与此同时,Mini及Micro LED技术的日益成熟,推动了间距小于1.2 Pitch的Mini、Micro LED显示屏的快速发展。这类显示屏不仅画质卓越,而且尺寸适中,通常在110至1000英寸之间,非常适合应用于电影院、监控中心、大型会议、以及电影拍摄等多种室内场景。鉴于室内LED显示屏与用户距离较近,因此对于噪音控制、体积小型化、冗余备份能力及电气安全性的要求尤为严格。为满足这一市场需求,开关电源技术推出了专为
    晶台光耦 2025-01-13 10:42 524浏览
  • 01. 什么是过程能力分析?过程能力研究利用生产过程中初始一批产品的数据,预测制造过程是否能够稳定地生产符合规格的产品。可以把它想象成一种预测。通过历史数据的分析,推断未来是否可以依赖该工艺持续生产高质量产品。客户可能会要求将过程能力研究作为生产件批准程序 (PPAP) 的一部分。这是为了确保制造过程能够持续稳定地生产合格的产品。02. 基本概念在定义制造过程时,目标是确保生产的零件符合上下规格限 (USL 和 LSL)。过程能力衡量制造过程能多大程度上稳定地生产符合规格的产品。核心概念很简单:
    优思学院 2025-01-12 15:43 555浏览
  • 食物浪费已成为全球亟待解决的严峻挑战,并对环境和经济造成了重大影响。最新统计数据显示,全球高达三分之一的粮食在生产过程中损失或被无谓浪费,这不仅导致了资源消耗,还加剧了温室气体排放,并带来了巨大经济损失。全球领先的光学解决方案供应商艾迈斯欧司朗(SIX:AMS)近日宣布,艾迈斯欧司朗基于AS7341多光谱传感器开发的创新应用来解决食物浪费这一全球性难题。其多光谱传感解决方案为农业与食品行业带来深远变革,该技术通过精确判定最佳收获时机,提升质量控制水平,并在整个供应链中有效减少浪费。 在2024
    艾迈斯欧司朗 2025-01-14 18:45 82浏览
  • 新年伊始,又到了对去年做总结,对今年做展望的时刻 不知道你在2024年初立的Flag都实现了吗? 2025年对自己又有什么新的期待呢? 2024年注定是不平凡的一年, 一年里我测评了50余块开发板, 写出了很多科普文章, 从一个小小的工作室成长为科工公司。 展望2025年, 中国香河英茂科工, 会继续深耕于,具身机器人、飞行器、物联网等方面的研发, 我觉得,要向未来学习未来, 未来是什么? 是掌握在孩子们生活中的发现,和精历, 把最好的技术带给孩子,
    丙丁先生 2025-01-11 11:35 466浏览
  • 根据Global Info Research(环洋市场咨询)项目团队最新调研,预计2030年全球无人机电池和电源产值达到2834百万美元,2024-2030年期间年复合增长率CAGR为10.1%。 无人机电池是为无人机提供动力并使其飞行的关键。无人机使用的电池类型因无人机的大小和型号而异。一些常见的无人机电池类型包括锂聚合物(LiPo)电池、锂离子电池和镍氢(NiMH)电池。锂聚合物电池是最常用的无人机电池类型,因为其能量密度高、设计轻巧。这些电池以输出功率大、飞行时间长而著称。不过,它们需要
    GIRtina 2025-01-13 10:49 211浏览
  • 流量传感器是实现对燃气、废气、生活用水、污水、冷却液、石油等各种流体流量精准计量的关键手段。但随着工业自动化、数字化、智能化与低碳化进程的不断加速,采用传统机械式检测方式的流量传感器已不能满足当代流体计量行业对于测量精度、测量范围、使用寿命与维护成本等方面的精细需求。流量传感器的应用场景(部分)超声波流量传感器,是一种利用超声波技术测量流体流量的新型传感器,其主要通过发射超声波信号并接收反射回来的信号,根据超声波在流体中传播的时间、幅度或相位变化等参数,间接计算流体的流量,具有非侵入式测量、高精
    华普微HOPERF 2025-01-13 14:18 511浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦