
linux性能调试优化
文章平均质量分 51
linux性能调试优化
HugoVus
这个作者很懒,什么都没留下…
展开
-
ftrace之function及function_graph使用
一 用途(1)function 主要用于跟踪内核函数的调用栈(2)function_graph 永固跟踪内核函数原创 2022-01-04 20:00:10 · 5192 阅读 · 2 评论 -
perf-tools
perf-tools简介一个开发中的Linux性能测试使用的工具,能够收集ftrace和perf_events中乱七八糟的参数。ftrace和perf都是Linux中的内核跟踪工具,包含在Kernel中。ftrace在多数系统中已经存在,但perf可能需要添加额外的软件包。这些工具设计的很容易安装(较少的依赖),能提供详细直观的性能参数,并且操作简单。本教程由Brendan Gregg (DTraceToolkit的作者)创建。这些工具以服务的方式运行在内核中,因此多数工具都有说明手册(man帮助手转载 2021-12-15 20:53:24 · 1586 阅读 · 0 评论 -
USDT用户态静态跟踪介绍
一 功能提供用户空间版本的跟踪点支持二 添加USDT探针(1)通过systemtap-sdt-dev包提供的头文件和工具,这个应该是用在发行版linux上的(2)使用Facebook的Folly C++库三UDST主要为BCC/bpftrace提供用户态的静态探针支持...原创 2021-12-14 20:29:19 · 1436 阅读 · 0 评论 -
系统级性能分析工具perf的介绍与使用
测试环境:Ubuntu16.04 +Kernel:4.4.0-31系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化。性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码。代码优化的目标是针对具体性能问题而优化代码或编译选项,以改善软件性能。在性能剖析阶段,需要借助于现有的profiling工具,如perf等。在代码优化阶段往往需要借助开发者的经验,编写简洁高效的代码,甚至在汇编级别合理使用各种指令,合理安排各种指令的执行顺序.转载 2021-12-14 20:06:30 · 2697 阅读 · 0 评论 -
Linux性能调试博客
Brendan Gregg: Overviewhttps://www.brendangregg.com/overview.html该网站是《BPF之巅》的作者网站,上面介绍了各种性能调试方法(包括BPF/PERF/DTrace等)原创 2021-12-14 18:29:54 · 721 阅读 · 0 评论 -
跟踪点tracepoints介绍
一 功能用来对内核进行静态插桩,我们可以在内核函数的特定逻辑位置处,放置插桩点。这些插桩点及其回调函数会被编译到内核镜像中二 添加tracepoints及使用不同版本内核,有不同的方式,如:(1)TRACE_EVNET(2)DECLARE_TRACE具体可以参考如下文档:https://elixir.bootlin.com/linux/v4.17.18/source/Documentation/trace/tracepoints.rsttracepoint-analysis.原创 2021-12-14 17:54:44 · 923 阅读 · 0 评论 -
系统cpu主频查看设置
一、 /sys/devices/system/cpu/cpu0 目录结构/sys/devices/system/cpu/cpu0Z91:/sys/devices/system/cpu/cpu0 # ls -alls -altotal 0drwxr-xr-x 5 root root 0 2018-01-09 11:17 .drwxr-xr-x 13 root root 0 2018-01-09 11:17 ..lrwxrwxrwx 1 root root 0 2018-0...转载 2021-12-14 17:09:18 · 3091 阅读 · 0 评论 -
uprobes介绍
一 功能uprobes提供了用户态程序的动态插桩, 注意与kprobes的 区别二 接口(1)基于Ftrace,通过/sys/kernel/debug/tracing/uprobe_events写入特定字符串打开关闭uprobes,具体方法参考如下文档:uprobetracer.rst - Documentation/trace/uprobetracer.rst - Linux source code (v4.17.18) - Bootlin注意和kprobe不同的是...原创 2021-12-14 16:44:42 · 1109 阅读 · 0 评论 -
kprobes/kretprobes介绍
一 功能(1)kprobe/kretprobes提供了针对内核的动态插桩支持。(2)kprobes可以对任何内核函数(入口或函数内部指令)进行插桩(3)kretprobes用来对内核函数返回时进行插桩以获取返回值等二 接口三种接口方式:(1)kprobe API:register_kprobe/register_kretprobe 该API接口是内核提供的,一般在定制化调试的驱动模块中调用API注册kprobe事件。具体信息可以参考如下内核文档:kprobe...原创 2021-12-14 16:17:20 · 905 阅读 · 0 评论 -
BPF资料
(1)BCC路径GitHub - iovisor/bcc: BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and moreBCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more - GitHub - iovisor/bcc: BCC - Tools for BPF-based Linux IO analysis, ne原创 2021-12-13 14:37:04 · 527 阅读 · 0 评论 -
Linux芯片级移植及底层驱动
在一个新的ARM SoC上,如何移植Linux。1、介绍Linux 3.x之后的内核在底层BSP上做了哪些优化。2、如何提供操作系统的运行节拍。3、中断控制器驱动以及它如何为驱动提供标准接口。4、多核SMP芯片的启动。5、作为Linux运行底层基础设施的GPIO、pinctrl(管脚控制器)、时钟和dmaengine驱动。本章有助于工程师理解驱动调用的底层API的来源,以及直接进行Linux的平台移植。20.1 ARM Linux底层驱动的组成和现状 让Linux在一个..转载 2021-11-29 14:45:03 · 2096 阅读 · 0 评论 -
常用网址博客
参考网址:Linux Kernel Exploration:http://ilinuxkernel.com/CPU基础(15) Hadoop(2) HPC(1) I/O系统(43) 书籍推荐(2) 其他(13) 内存管理(13) 内核基础(56) 文件系统(3) 服务器硬件(12) 电源管理(4) 系统使用(39) 计算机基础(1) 资料推荐(17)...原创 2021-03-24 15:22:53 · 117 阅读 · 0 评论 -
linux的early printk的探讨
http://mcuos.com/thread-8169-1-1.html(一)知识背景:[color=Red]Uncompressing Linux... done, booting the kernel. ------------setup_arch------------ ------------setup_machine_fdtreturn0------------ Machine: MCUOS6410[/color] Linux version 3.0.30-g4e794c6-..转载 2021-07-19 11:37:27 · 348 阅读 · 0 评论 -
KGDB调试
关于KGDB就不多说了,用来调试内核的,网上大把的介绍,废话不说,直接进入主题。调试的是linux-3.3内核KGDB调试设置步骤如下:1.配置开发板的内核,以支持KGDB,主要是通过“make menuconfig”选择以下选项:General Setup---> Prompt fordevelopment and/or incomplete code/drivers Kernel hacking---> Compile the kernel with d...转载 2021-07-17 14:49:42 · 1292 阅读 · 0 评论 -
QEMU+GDB调试Linux内核总结(全)
写在最前面昨天更新了一篇名为《QEMU+GDB调试linux内核全过程》[link][https://blog.youkuaiyun.com/weixin_37867857/article/details/88138432]的博客,发现排版比较混乱,而且思维也比较混乱。咋一看下来简直是惨不忍睹,而且会给读者在安装过程中一种云里雾里的感觉,加上将近一个半月没有更新博客,导致对于博客的写作比较生疏了。所以决定重新更新一篇博客,以弥补昨天的遗憾。为了更新本博客,于今天特意安装了一款虚拟机,重头开始指导并且总结怎么调试li转载 2021-07-17 14:57:46 · 1028 阅读 · 0 评论 -
arm developer site - Home – Arm Developer
https://developer.arm.com/documentation/原创 2021-05-24 14:22:48 · 330 阅读 · 0 评论 -
initramfs/initrd
initramfs概述initramfs与initrd类似,也是初始化好了且存在于ram中的,可以压缩也可以不压缩。但是目前initramfs只支持cpio包格式,它会被populate_rootfs->unpack_to_rootfs(&__initramfs_start, &__initramfs_end - &__initramfs_start, 0)函数(解压缩、)解析、安装。initramfs与initrd区别(1) Linux内核只认cpio格式的initra转载 2021-05-24 10:38:19 · 794 阅读 · 0 评论 -
一些比较好的博客地址
(1)linux汇编+kernel+driverhttp://zmrlinux.com/2015/06/09/%E6%B1%87%E7%BC%96%E8%AF%AD%E8%A8%80%E5%9F%BA%E7%A1%802/原创 2018-04-08 15:13:05 · 402 阅读 · 0 评论