2026年3月2日

kernel能否访问用户态空间

摘要: 一般来说,kernel拥有最高的权限,可以访问任意的地址空间。但是cpu有一个特性可以禁止kernel访问用户空间.在x86上这个feature是SMAP(Supervisor Mode Access Prevention), 在arm上这个feature是PAN(Privileged Access 阅读全文

posted @ 2026-03-02 14:50 半山随笔 阅读(3) 评论(0) 推荐(0)

2026年2月4日

静态编译perf

摘要: 在linux/tools/perf目录下执行 make LDFLAGS="-static" \ EXTRA_CFLAGS="-static" \ EXTRA_LDFLAGS="-static" 但是经常会出现缺少静态链接库导致编译失败。 可以安装或者禁止链接来避免链接系统没有安装的库。比如/usr/ 阅读全文

posted @ 2026-02-04 11:45 半山随笔 阅读(7) 评论(0) 推荐(0)

2025年12月30日

numa balancing缺陷分析

摘要: numa balance是linux内核用来解决多numa架构下,跨节点访存引起性能下降的问题。 原理 numa balance通过两个步骤来解决上述问题。 周期性发起进程页面扫描,扫描过程中会断开页表映射; 进程访问被断开映射的内存时发生page fault,do_numa_page会处理这个错误 阅读全文

posted @ 2025-12-30 20:53 半山随笔 阅读(35) 评论(0) 推荐(0)

2025年12月5日

通知cpu重调度一定要发IPI吗?

摘要: 有时候我们需要让当前cpu通知其他某个cpu做重调度。比如当前cpu将一个进程enqueue到另一个cpu的rq上,这个时候我们需要通知对端的cpu这里有个任务,请做一下调度,执行新加入的任务。但是通知对端cpu重调度是否一定要发IPI? 一般而言,cpu只能管理自己内部的事务,各个cpu之间互相不 阅读全文

posted @ 2025-12-05 15:25 半山随笔 阅读(20) 评论(0) 推荐(0)

2025年11月16日

bpftrace报错:definitions.h:17:3: error: unknown type name 'pid_t'

摘要: 使用bpftrace时报错 definitions.h:15:3: error: unknown type name 'pid_t' definitions.h:16:3: error: unknown type name 'pid_t' definitions.h:17:3: error: unk 阅读全文

posted @ 2025-11-16 15:32 半山随笔 阅读(19) 评论(0) 推荐(0)

2025年9月22日

bpftrace测量函数耗时

摘要: bpftrace可以通过在函数开始和结束时打桩,测量两者的间隔得到函数的执行时间。目前能够在内核函数返回时时插装的主要是kprobe。下面是一个例子: #!/usr/bin/bpftrace kprobe:try_to_wake_up { @start[tid] = nsecs; } kretpro 阅读全文

posted @ 2025-09-22 16:42 半山随笔 阅读(21) 评论(0) 推荐(0)

2025年7月16日

ubuntu kernel deb下载链接

摘要: https://kernel.ubuntu.com/mainline/?C=N;O=D 阅读全文

posted @ 2025-07-16 20:05 半山随笔 阅读(23) 评论(0) 推荐(0)

2025年7月13日

linux kernel特性介绍文章网站

摘要: Kernel index [LWN.net] https://lwn.net/Kernel/Index/ 阅读全文

posted @ 2025-07-13 15:51 半山随笔 阅读(8) 评论(0) 推荐(0)

2025年7月3日

记录一次iostat显示磁盘占用100%问题的解决过程

摘要: 某一天突然感觉一台服务器涉及到磁盘读写的操作都很卡。使用iostat -x看到: 可以看到util已经是100%。看写入速度也不大,也就十几兆。当前也没有太高的iowait,cpu也都是idle。 使用iotop看,也没有磁盘写入的进程(感觉iotop有问题) 使用fatrace可以看到读写的文件大 阅读全文

posted @ 2025-07-03 10:06 半山随笔 阅读(211) 评论(0) 推荐(0)

2025年6月24日

修改ubuntu cloud image的密码

摘要: sudo apt-get install cloud-image-utils cat >user-data <<EOF #cloud-config password: a chpasswd: { expire: False } ssh_pwauth: True EOF cloud-localds u 阅读全文

posted @ 2025-06-24 15:56 半山随笔 阅读(71) 评论(0) 推荐(0)

导航