自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

转载 crash分析

crash分析内核经典实例:https://bugs.centos.org/view.php?id=13241kmem addr 获取内存分配信息欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进...

2019-12-31 16:06:50 373

原创 内核线程创建

内核线程的创建最终是由kthreadd完成,内核创建内核线程的其他api是kthread_create_on_node对它的封装。 常见的kthread_create_on_cpu和create_worker最终调用kthread_create_on_node 内核初始化时,会创建两个进程init和kthreadd,init进程最终会从内核态转到用户态,执行/etc/init....

2019-09-23 20:56:54 1857

原创 页回收

shrink_*_list()shrink_active_list()只能看到在active/inactive lru list中的不可回收页,并且可以将这些不可回收页转移到unevictable list。unevictable list中的页对shrink_active_list不可见。active/inactive list中出现unveictable page的情形有以下几种情况:...

2019-01-20 19:05:27 212

原创 文件系统mount

mount-flags(通用flags,不依赖具体文件系统)

2019-01-17 17:28:23 389

原创 文件系统概述

VFS向用户提供了统一接口,同时向实际文件系统提供了统一界面,封装了具体文件系统,使linux可以实现跨文件系统的文件操作。此外,VFS管理系统内的文件系统,包括当前支持哪些文件系统,系统已经挂载了哪些文件系统。用户打开文件时,VFS创建file,file将VFS操作文件的函数与具体文件系统实现进行绑定,此后用户对文件的操作通过VFS转化为对具体文件系统的操作。参考:https://www.i...

2019-01-04 15:04:44 617

原创 spin_lock

typedef struct spinlock {union {struct raw_spinlock rlock;#ifdef CONFIG_DEBUG_LOCK_ALLOC#define LOCK_PADSIZE (offsetof(struct raw_spinlock, dep_map))struct {u8 __padding[LOCK_PADSIZE];struct lo...

2018-12-29 16:33:06 143

原创 perf

Linux perf_event basicsPerformance Monitoring basics主要包括计数count、采样sample、追踪tracing。计数count主要给出了perf stat统计数据,以及统计什么数据;采样sample记录事件采样点,只对采样集给出在内核什么地方采样;追踪tracing 追踪事件和指令,以及intel PTlinux "perf_eve...

2018-12-15 16:59:38 1005

原创 引发panic的硬件故障

针对硬件故障,系统存在四种中断MCE、NMI、PCIe AER中断、SMI中断。MCE - Machine Check ExceptionNMI - NonMaskable InterruptPCIe AER - Advanced Error Reproting 需要硬件、BIOS和driver支持,如果Pcie 设备发生硬件故障,则硬件发出PCIe AER中断SMI - System ...

2018-12-13 20:07:33 5819

原创 kernel开发调试

soft lockup和hard lockup介绍主体主要涉及kernel线程、时钟中断、NMI中断。优先级:kernel线程<时钟中断<NMI中断soft lockup和hard lockup主要调试以下问题:抢占被长时间关闭而导致进程无法调度(soft lockup)中断被长时间关闭而导致的问题 (hard lockup)R状态死锁监测R状态死锁是指某一任务一直处于T...

2018-12-13 10:43:08 197

原创 常用链接

锁:http://blog.jobbole.com/100078/

2018-12-11 10:06:29 112

原创 虚拟机入门

创建虚机## 标题virt-intallvirt-install是rpm包python-virtinst里的一个工具 -- 其实就是一个python写的脚本 。其是qemu-kvm工具的人性化实现virt-install --name=VMNAME−−ram=1024−−vcpus=1−−diskpath=VM_NAME --ram=1024 --vcpus=1 --disk path=VM...

2018-12-08 15:07:51 635

原创 grub和grub2区别

更新grub配置文件命令:update-grubgrub2是版本号在1.98之后的grub;grub一般指grub legacy,版本号为0.97。grub2新增加功能:动态加载模块;新的配置文件结构,更好地支持UUID;/boot/grub/menu.1st被/boot/grub/grub.cfg取代;磁盘分区编号变更,即第一个磁盘分区是1,不是0。但是磁盘编号还是0,没有改变;...

2018-12-08 14:45:40 7548

原创 内存回收基本介绍

内存回收参考:https://www.ibm.com/developerworks/cn/linux/l-cn-pagerecycle/index.html

2018-12-07 10:18:37 432

原创 Kernel IO栈

IO栈示意图

2018-11-28 10:30:44 400

原创 系统boot过程

参考http://cgnail.github.io/academic/bootstrap/

2018-11-27 19:52:32 1440

原创 RCU锁

RCU锁参考:http://blog.jobbole.com/107958/

2018-11-23 20:01:46 504

原创 git常用指南

常用操作Git status 查看本地状态Git log 查看提交过的版本Git checkout 取出任意历史版本建立分支 git branch branch_name / git checkout –b branch_name合入:将分支合入当前分支1. Git checkout master_branchGit merge 待合入分支存在环2. ...

2018-11-07 14:22:36 127

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除