Fork me on GitHub
上一页 1 ··· 30 31 32 33 34 35 36 37 38 ··· 99 下一页
摘要: 在介绍 HugePages 之前,我们先来回顾一下 Linux 下 虚拟内存 与 物理内存 之间的关系。 物理内存:也就是安装在计算机中的内存条,比如安装了 2GB 大小的内存条,那么物理内存地址的范围就是 0 ~ 2GB。 虚拟内存:虚拟的内存地址。由于 CPU 只能使用物理内存地址,所以需要将虚 阅读全文
posted @ 2022-10-13 17:55 yooooooo 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 当USB设备插上主机时,主机就通过一系列的动作来对设备进行枚举配置(配置是属于枚举的一个态,态表示暂时的状态),这些态如下: 1、接入态(Attached):设备接入主机后,主机通过检测信号线上的电平变化来发现设备的接入; 2、供电态(Powered):就是给设备供电,分为设备接入时的默认供电值,配 阅读全文
posted @ 2022-10-07 12:09 yooooooo 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 基本结构 #导入库 from bcc import BPF #使用BPF()执行bpf代码 BPF(text=""" #C语言代码段 """ ) #对bpf的处理代码 C语言代码编写 不需要写main函数,目前知道可以写两种函数,以“kprobe__”开头的函数和自定义函数。bpf函数至少要包含一个 阅读全文
posted @ 2022-10-06 17:54 yooooooo 阅读(496) 评论(0) 推荐(0) 编辑
摘要: bcc代码——Hello,world 1、简单监控clone()系统调用,将相关的信息打印出来 #!/usr/bin/python from bcc import BPF BPF(text=""" int kprobe__sys_clone(void *ctx){ bpf_trace_printk( 阅读全文
posted @ 2022-10-06 17:24 yooooooo 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 前言 端点在实际的USB通讯过程种的具体作用与含义十分重要,但是有些难以理解,自己整理一些知识作为备忘。 (注:1、文中的EP表示Endpoint; 一、端点概念。 端点(Endpoint),是主机与设备之间通讯数据的接收或来源。主机与设备之间通信时最终会总用于设备上的各个端点,它是主机与设备间通信 阅读全文
posted @ 2022-10-01 11:35 yooooooo 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 引言 由于android开发的需要与systrace的普及,现在大家在进行性能与功耗分析时候,经常会用到systrace跟pefetto. 而systrace就是基于内核的event tracing来实现的。以如下的一段pefetto为例。可以看到tid=1845的线程,在被唤醒到CPU5上之后,在 阅读全文
posted @ 2022-09-11 16:09 yooooooo 阅读(152) 评论(0) 推荐(0) 编辑
摘要: perf除了上述的采样形式,还支持解析函数执行的完整调用栈,并得到调用栈中各个环节的cpu消耗,并对位于同一调用栈的各个环节的采样占比进行加总,得到占用cpu比例最高的顶层栈。使用如下命令进行采样 perf record -g --call-graph fp xxx # xxx 代表具体要执行的命令 阅读全文
posted @ 2022-08-28 16:43 yooooooo 阅读(1992) 评论(0) 推荐(0) 编辑
摘要: perf top 用于实时显示当前系统的性能统计信息。该命令主要用来观察整个系统当前的状态,比如可以通过查看该命令的输出来查看当前系统最耗时的内核函数或某个用户进程 再往下看是一个表格式样的数据,每一行包含四列,分别是: 第一列 Overhead ,是该符号的性能事件在所有采样中的比例,用百分比来表 阅读全文
posted @ 2022-08-28 16:03 yooooooo 阅读(803) 评论(0) 推荐(0) 编辑
摘要: Ftrace设计作为一个内部的tracer提供给系统的开发者和设计者,帮助他们弄清kernel正在发生的行为,它能够调式分析延迟和性能问题。对于前一章节,我们学习了Ftrace发展到现在已经不仅仅是作为一个function tracer了,它实际上成为了一个通用的trace工具的框架 一方面已经从f 阅读全文
posted @ 2022-08-23 10:58 yooooooo 阅读(570) 评论(0) 推荐(0) 编辑
摘要: arm64 栈帧结构 arm64 有31个通用寄存器 r0-r30,用法分别如下: 寄存器 意义 SP Stack Pointer: 栈指针 r30 Link Register: 在调用函数时候,保存下一条要执行指令的地址 r29 Frame Pointer:保存函数栈的基地址 r28...r19 阅读全文
posted @ 2022-08-20 22:03 yooooooo 阅读(385) 评论(0) 推荐(0) 编辑
上一页 1 ··· 30 31 32 33 34 35 36 37 38 ··· 99 下一页