腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
linux驱动个人学习
专栏作者
举报
698
文章
1315929
阅读量
180
订阅数
订阅专栏
申请加入专栏
全部文章(698)
编程算法(170)
linux(158)
其他(78)
kernel(57)
android(55)
缓存(53)
内核(36)
数据结构(35)
内存(24)
c++(22)
node.js(22)
单片机(21)
打包(20)
进程(20)
arm(19)
api(19)
http(19)
系统(19)
存储(18)
java(17)
硬件开发(16)
数据(16)
tcp/ip(14)
程序(14)
host(12)
c 语言(11)
腾讯云测试服务(11)
proc(11)
函数(11)
接口(10)
ide(9)
struct(9)
usb(9)
数据库(8)
容器(8)
编译(8)
git(7)
unix(7)
网站(7)
数据分析(7)
core(7)
driver(7)
指针(7)
shell(6)
二叉树(6)
系统架构(6)
device(6)
io(6)
sys(6)
性能(6)
c#(5)
xml(5)
汇编语言(5)
文件存储(5)
网络安全(5)
bit(5)
cpu(5)
init(5)
磁盘(5)
内存管理(5)
调试(5)
线程(5)
javascript(4)
sql(4)
命令行工具(4)
面向对象编程(4)
gcc(4)
任务调度(4)
clock(4)
max(4)
操作系统(4)
队列(4)
对象(4)
工具(4)
管理(4)
架构(4)
配置(4)
异常(4)
主机(4)
go(3)
makefile(3)
github(3)
容器镜像服务(3)
云函数(3)
云推荐引擎(3)
人工智能(3)
electron(3)
开源(3)
flash(3)
windows(3)
https(3)
nat(3)
迁移(3)
back(3)
count(3)
data(3)
int(3)
interface(3)
monitor(3)
panel(3)
pid(3)
set(3)
state(3)
task(3)
工作(3)
排序(3)
前端(3)
事件(3)
统计(3)
文件系统(3)
硬件(3)
ios(2)
python(2)
bash(2)
css(2)
html(2)
嵌入式(2)
access(2)
jar(2)
搜索引擎(2)
消息队列 CMQ 版(2)
检测工具(2)
serverless(2)
爬虫(2)
opencv(2)
udp(2)
kvm(2)
大数据(2)
安全(2)
kafka(2)
sdk(2)
action(2)
add(2)
buffer(2)
byte(2)
class(2)
config(2)
controller(2)
display(2)
dto(2)
fifo(2)
gpio(2)
input(2)
iso(2)
ld(2)
limit(2)
lock(2)
malloc(2)
overlay(2)
pixel(2)
root(2)
shared(2)
spi(2)
status(2)
trace(2)
video(2)
变量(2)
编码(2)
定时器(2)
服务(2)
后端(2)
基础(2)
链表(2)
连接(2)
设计(2)
实践(2)
数组(2)
索引(2)
同步(2)
效率(2)
协议(2)
优化(2)
字符串(2)
负载均衡(1)
官方文档(1)
php(1)
actionscript(1)
.net(1)
scala(1)
jquery ui(1)
jquery(1)
ajax(1)
android studio(1)
listview(1)
composer(1)
memcached(1)
vba(1)
ubuntu(1)
bash 指令(1)
solaris(1)
深度学习(1)
批量计算(1)
访问管理(1)
NAT 网关(1)
SSL 证书(1)
文字识别(1)
视频处理(1)
图像处理(1)
数据备份(1)
vr 视频解决方案(1)
数据安全(1)
游戏(1)
分布式(1)
黑客(1)
jvm(1)
ssh(1)
正则表达式(1)
gui(1)
asp(1)
ftp(1)
jenkins(1)
iis(1)
socket编程(1)
ntp(1)
小程序(1)
机器人(1)
物联网(1)
虚拟化(1)
小程序·云开发(1)
amp(1)
app(1)
arm64(1)
assert(1)
bat(1)
block(1)
bluetooth(1)
bootloader(1)
button(1)
channel(1)
char(1)
children(1)
default(1)
detect(1)
dp(1)
dpi(1)
dt(1)
dynamic(1)
elf(1)
equals(1)
error(1)
expression(1)
file(1)
filter(1)
google(1)
gpt(1)
header(1)
i2c(1)
include(1)
instance(1)
jni(1)
libc(1)
load(1)
loading(1)
local(1)
ls(1)
map(1)
matplotlib(1)
message(1)
migrate(1)
mips(1)
mmap(1)
module(1)
mutex(1)
output(1)
parent(1)
path(1)
point(1)
port(1)
profile(1)
provider(1)
qemu(1)
report(1)
route(1)
samsung(1)
save(1)
screen(1)
selection(1)
self(1)
semaphore(1)
stack(1)
static(1)
stderr(1)
summary(1)
super(1)
swap(1)
target(1)
text(1)
tools(1)
transfer(1)
translation(1)
transparent(1)
trim(1)
txt(1)
widget(1)
width(1)
x86(1)
备份(1)
编程(1)
编译器(1)
测试(1)
程序设计(1)
多线程(1)
二进制(1)
翻译(1)
高性能(1)
加密解密(1)
监控(1)
蓝牙(1)
命令行(1)
内存泄漏(1)
日志(1)
软件(1)
软件架构(1)
软件开发(1)
手机(1)
树莓派(1)
算法(1)
网络(1)
芯片(1)
虚拟机(1)
压缩(1)
异常处理(1)
语法(1)
源码(1)
原型(1)
状态机(1)
嵌入式系统(1)
搜索文章
搜索
搜索
关闭
linux tracepoint增加
linux
pid
函数
内核
事件
内核采用“插桩”的方法抓取log,“插桩”也称为Tracepoint,Tracepoint是Linux内核预先定义的静态探测点,它分布于内核的各个子系统中,每种Tracepoint有一个name、一个enable开关、一系列桩函数、注册桩函数的函数、卸载桩函数的函数。“桩函数”功能类似于printk,不过“桩函数”并不会把信息打印到console,而是输出到内核的ring buffer(环形缓冲区),缓冲区中的信息通过debugfs对用户呈现。每个tracepoint提供一个钩子来调用probe函数。一个tracepoint可以打开或关闭。打开时,probe函数关联到tracepoint;关闭时,probe函数不关联到tracepoint。tracepoint关闭时对kernel产生的影响很小,只是增加了极少的时间开销(一个分支条件判断),极小的空间开销(一条函数调用语句和几个数据结构)。只有挂载了钩子函数才会真正启用trace功能。这个钩子函数可以由开发者编写内核module来实现,并且需要在钩子函数中获取我们调试所需要的信息并导出到用户态,这样就可以获取内核运行时的信息了。当一个tracepoint打开时,用户提供的probe函数在每次这个tracepoint执行都会被调用。
233333
2024-04-04
48
0
linux中透明巨页与巨页的区别
linux
内存
内存管理
配置
性能
在Linux中,透明巨页(Transparent HugePage)和巨页(HugePage)是两种不同的内存管理技术。 透明巨页是Linux内核中的一项特性,旨在提高内存的利用率和性能。它通过将内存分配为更大的巨页(通常为2MB或1GB),减少了对内存页表的访问次数,从而提高了内存访问的效率。透明巨页是透明的,应用程序无需进行任何修改即可受益于这种内存管理技术。 而巨页是指一种更大尺寸的内存页,在Linux中可以使用不同的页面大小,常见的巨页大小是2MB或1GB。巨页可以提供更高的内存访问性能,因为它减少了页表的数量,降低了TLB(Translation Lookaside Buffer)缓存的压力,从而减少了内存访问的开销。巨页需要应用程序进行适当的修改和配置才能使用。 因此,透明巨页和巨页都是通过增加内存页的尺寸来提高内存访问性能,但透明巨页不需要应用程序的修改,而巨页需要应用程序的支持和配置。
233333
2023-11-24
218
0
linux内核 快速分片,技术|Linux slabtop命令——显示内核片缓存信息
linux
缓存
对象
内核
排序
Linux内核需要为临时对象如任务或者设备结构和节点分配内存,缓存分配器管理着这些类型对象的缓存。现代Linux内核部署了该缓存分配器以持有缓存,称之为片。不同类型的片缓存由片分配器维护。本文集中讨论slabtop命令,该命令显示了实时内核片缓存信息。
233333
2023-11-11
420
0
linux中backport printk和front printk的区别
linux
工作
内核
调试
文件系统
在Linux内核中,"backport printk"和"front printk"都是用于记录内核消息和调试信息的机制,但它们的工作方式和使用场景有一些区别。
233333
2023-09-28
131
0
用 kGDB 调试 Linux 内核
linux
进程
内核
配置
调试
这个文档记录了用 kGDB 调试 Linux 内核的全过程,都是在前人工作基础上的一些总结。以下操作都是基于特定板子来进行,但是大部分都能应用于其他平台。
233333
2023-09-11
551
0
如何快速定位 Linux Panic 出错的代码行
linux
编译
函数
内核
调试
就是这样一个常见的问题,面试过的大部分同学都未能很好地回答,这里希望能够做很彻底地解答。
233333
2023-09-10
486
0
linux那些事之页迁移(page migratiom)
linux
迁移
进程
内存
系统
页迁移技术是内核中内存管理的一种比较重要的技术,最早该技术诞生于NUMA系统中(Page migration [LWN.net]),后续由于内存规整以及CMA和COW技术的出现,也需要用到页迁移技术,逐渐称为内核内存子系统中占有比较重要地位。
233333
2023-08-24
442
0
Linux内存管理2.6 -反向映射RMAP(最终版本)
linux
数据结构
struct
进程
内存管理
所谓反向映射是相对于从虚拟地址到物理地址的映射,反向映射是从物理页面到虚拟地址空间VMA的反向映射。
233333
2023-08-14
466
0
Linux 循环设备 loop疑惑
linux
磁盘
接口
连接
文件系统
loop设备是一种伪设备,是使用文件来模拟块设备的一种技术,文件模拟成块设备后, 就像一个磁盘或光盘一样使用。在使用之前,一个 loop 设备必须要和一个文件进行连接。这种结合方式给用户提供了一个替代块特殊文件的接口。因此,如果这个文件包含有一个完整的文件系统,那么这个文件就可以像一个磁盘设备一样被 mount 起来。之所以叫loop设备(回环),其实是从文件系统这一层来考虑的,因为这种被 mount 起来的镜像文件它本身也包含有文件系统,通过loop设备把它mount起来,它就像是文件系统之上再绕了一圈的文件系统,所以称为 loop。
233333
2023-08-02
562
0
Linux如何使用trim命令保持SSD的读写速度
linux
trim
操作系统
数据
系统
随着硬盘技术的不断发展何固态硬盘的大量使用,你肯定听说过或者使用过固态硬盘,固态硬盘(或固态硬盘)能够达到比传统硬盘更快的读取和写入数据的速度,您可能不知道的是,随着时间的推移,当磁盘写满时,SSD硬盘在数据写入时可能会失去一些速度,如果您为了速度而在服务器中运行SSD,那么就可以使用TRIM来保持SSD运行速度到最佳状态。
233333
2023-07-24
882
0
Linux:/proc/meminfo参数详细解释
linux
proc
进程
内存
统计
/proc/meminfo是了解Linux系统内存使用状况的主要接口,我们最常用的”free”、”vmstat”等命令就是通过它获取数据的 ,/proc/meminfo所包含的信息比”free”等命令要丰富得多,然而真正理解它并不容易,比如我们知道”Cached”统计的是文件缓存页,manpage上说是“In-memory cache for files read from the disk (the page cache)”,那为什么它不等于[Active(file)+Inactive(file)]?AnonHugePages与AnonPages、HugePages_Total有什么联系和区别?很多细节在手册中并没有讲清楚,本文对此做了一点探究。
233333
2023-07-24
754
0
Linux uevent分析、用户接收uevent以及mdev分析
linux
action
char
int
sys
int mdev_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int mdev_main(int argc UNUSED_PARAM, char **argv) { RESERVE_CONFIG_BUFFER(temp, PATH_MAX + SCRATCH_SIZE);
233333
2023-07-24
238
0
linux overlay文件系统
linux
overlay
数据
文件系统
系统
一个 overlay 文件系统包含两个文件系统,一个 upper 文件系统和一个 lower 文件系统,是一种新型的联合文件系统。overlay是“覆盖…上面”的意思,overlay文件系统则表示一个文件系统覆盖在另一个文件系统上面。
233333
2023-07-09
1.6K
0
Linux启动时间优化-内核和用户空间启动优化实践
linux
进程
内核
实践
优化
从内核timestamp 0.000000作为内核启动起点,到free_initmem()输出"Freeing init memory"作为内核启动的终点。
233333
2023-07-09
525
0
ftrace irqs跟踪器
linux
root
内核
事件
字符串
当中断被关闭(俗称关中断)了,CPU就不能响应其他的事件,如果这时有一个鼠标中断,要在下一次开中断时才能响应这个鼠标中断,这段延迟称为中断延迟。向current_tracer 文件写入 irqsoff字符串即可打开irqsoff来跟踪中断延迟。
233333
2023-06-09
281
0
Linux进程调度-组调度及带宽控制
linux
定时器
队列
函数
进程
组调度(task_group)是使用Linux cgroup(control group)的cpu子系统来实现的,可以将进程进行分组,按组来分配CPU资源等。
233333
2023-05-23
1.6K
0
Linux cpuidle framework(1)_概述和软件架构
linux
接口
进程
软件架构
系统
在计算机系统中,CPU的功能是执行程序,总结起来就是我们在教科书上学到的:取指、译码、执行。那么问题来了,如果没有程序要执行,CPU要怎么办?也许您会说,停掉就是了啊。确实,是要停掉,但何时停、怎么停,却要仔细斟酌,因为实际的软硬件环境是非常复杂的。
233333
2023-05-23
528
0
linux cpufreq framework(5)_ARM big Little driver
arm
linux
core
driver
接口
也许大家会觉得奇怪:为什么Linux kernel把对ARM big·Lttile的支持放到了cpufreq的框架中?
233333
2023-05-03
715
0
Linux 进程调度之schdule主调度器
linux
队列
函数
进程
内核
考虑到文章篇幅,在这里我只讨论普通进程,其调度算法采用的是CFS(完全公平)调度算法。 至于CFS调度算法的实现后面后专门写一篇文章,这里只要记住调度时选择一个优先级最高的任务执行
233333
2023-05-03
1.7K
0
Linux common clock framework(3)_实现逻辑分析
linux
clock
变量
接口
指针
前面两篇clock framework的分析文章,分别从clock consumer和clock provider的角度,介绍了Linux kernel怎么管理系统的clock资源,以及device driver怎么使用clock资源。本文将深入到clock framework的内部,分析相关的实现逻辑。
233333
2023-05-02
1.5K
0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档