写在前面

一步一个脚印,先深入理解linux内核!

2018-08-09 19:32:41

阅读数 20

评论数 0

调度的基本概念

一.调度的基本概念 1.时间片:进程在被抢占前预先设置好占用处理器的时间段。默认时间片时间为10ms,linux的CFS(完全公平调度算法)并没有 直接使用时间片分配给进程,它是将处理器的使用比划分给进程。 2.多任务操作系统分为抢占式和非抢占式。抢占式会被强制挂起,非抢占式只能自己主动停止,否则...

2019-08-15 19:39:31

阅读数 8

评论数 0

进程管理的基础

一.进程管理的基本概念 1.进程四要素: 有一段可执行的代码,代码不一定时进程专有,可以与其他进程共享; 有起码的私有财产,就是系统专有的系统堆栈空间; 有户口,就是内核中的task_struct数据结构,称为"进程控制块",这个结构是进程的"财产登记...

2019-08-15 19:38:04

阅读数 8

评论数 0

linux日志级别的正确使用(printk)

1.内核有严格的日志级别控制,他实际控制的是printk的输出以及对应内核驱动模块还有dev_dbg,dev_printk等函数的输出;我们可以通过proc接口来进行控制台输出我们需要的debug信息;内核日志级别有以下0-7共8级,数字越低级别越高: EMERG 0 ALERT 1 CRIT...

2019-08-15 19:23:18

阅读数 7

评论数 0

ixgbe驱动不支持三方兼容光模块SFP+SFP+或者QSFP的解决方案

ixgbe光纤网卡的驱动在默认情况下不支持第三方兼容光模块,会导致网卡驱动加载失败,ifocnfig看不到对应的网卡: 1.现象: 1)执行lspci |grep 8255能看到网卡在pci设备中 2)但是使用ifconfig -a命令,却找不到网卡,使用demsg|grep ixgbe发现...

2019-08-09 15:37:47

阅读数 8

评论数 0

grub2使用详解(官方手册)

https://www.cnblogs.com/f-ck-need-u/archive/2017/06/29/7094693.html

2019-07-25 20:27:47

阅读数 5

评论数 0

kernel命令行参数(grub启动项参数)

https://www.kernel.org/doc/html/v4.14/admin-guide/kernel-parameters.html

2019-07-25 19:06:51

阅读数 7

评论数 0

内存管理-基础知识框架和关键结构体(一)

一、基本概念 1.逻辑地址:包含在机器语言指令中的用来指定一个操作数或者一条指令的地址。每一个逻辑地址由一个段和偏移量组成,偏移量指明了从段开始的地方到实际地址的距离。 2.线性地址(又叫虚拟地址):是一个32位无符号整数,可以用来表示高达4GB的地址,也即是说,高达4294967296个内存...

2019-07-13 18:09:16

阅读数 15

评论数 0

一个hard lockup的vmcore实例解析

Hard lockup occurs due to an infinite loop encountered in distribute_cfs_runtime() 环境 Red Hat Enterprise Linux 7.3 (kernel-3.10.0-514.el7.x86_64) 问题 ...

2019-07-09 20:42:04

阅读数 21

评论数 0

linux scp(ssh)免密发送(登陆)配置方法

假设要将A主机(192.168.123.200)root用户下的某个文件备份同步到B主机(192.168.123.201)。 STEP1.生成公钥私钥对 root@localhost:~# ssh-keygen -t rsa a.接下来按默认的连续三次确认即可。 b.可以看到~/...

2019-07-09 20:36:38

阅读数 9

评论数 0

git的使用

1.git:分布式的版本控制工具概念 Git在Wikipedia上的定义:它是一个免费的、分布式的版本控制工具,或是一个强调了速度快的源代码管理工具。Git最初被LinusTorvalds开发出来用于管理Linux内核的开发。每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和...

2019-07-08 14:38:57

阅读数 61

评论数 0

hardlockup的原理说明

watchdog_timer: expire time: 4s =(watchdog_threshold*2)/5(watchdog_threshold由/proc/sys/kernel/watchdog_thresh配置,系统默认是10,下同) function:updating hrtime...

2019-07-08 14:27:17

阅读数 33

评论数 0

跟踪slab分配堆栈流程的方法(perf、systemtap)

跟踪slab分配堆栈流程的方法(perf、systemtap) 内存泄露是在解决内核故障会遇到的棘手情况,根据具体的内存使用情况,追踪相应slab cache的分配堆栈流程,是追踪泄露原因的第一步,接下来根据内核版本的不同,介绍二种跟踪slab分配的方法; 1.在perf支持probe功能的情况下...

2019-07-05 10:46:08

阅读数 30

评论数 0

qemu前后端features协商过程分析(vhost_user后端)

约定: 1)协商过程涉及的核心是:dpdk(ovs)vhost_user,qemu:vhost_user,qemu:virtio_net,guest virtio_net,共4个模块,每个模块都有自己的feature; 2)由于整个协商是自后端到前端,再由前端到后端的,即...

2019-06-29 14:36:06

阅读数 32

评论数 0

系统内核快速编译并替换的方法

对于一个内核功能和补丁的合入,要想快速验证功能正确性,提高项目CI成功率,最好自己快速进行验证,以下方法可以帮助快速编译,替换内核,做功能验证; 1,修改合入补丁或者功能; 2.修改.config文件,修改内核版本名称,如:CONFIG_LOCALVERSION="hzj-udptes...

2019-06-05 10:35:36

阅读数 20

评论数 0

/proc/meminfo 文件

/proc/meminfo是了解Linux系统内存使用状况的主要接口,我们的命令行工具free、vmstat等都是通过此接口获得;但是他的信息远比free等命令丰富的多;接下来对此文件进行探究。 内核负责输出/proc/meminfo的源代码是:fs/proc/meminfo.c :meminfo...

2019-04-30 16:34:15

阅读数 49

评论数 0

swap使用率达到100%的解决办法

一:方法 1.增加物理内存的大小,减少swap使用的可能性; 2.杀掉使用swap最多的进程,这种方法比较low,不太建议了; 3.通过创建swapfile分区,来增加swap空间; 4.主动swapout:swapoff -a 执行结束后,再执行swapon -a。 二:具体操作 1.增加物理内...

2019-04-18 20:22:57

阅读数 378

评论数 0

linux中的numa和swap

linux中的numa和swap 一.linux的numa技术(非一致性内存访问) 1.numa的基础认知 所有处理器都共享系统总线,因此当处理器的数目增大时,系统总线的竞争冲突加大,系统总线将成为瓶颈,所以目前SMP系统的CPU数目一般只有数十个,可扩展能力受到极大限制。NUMA技术有效结...

2019-04-15 20:23:56

阅读数 81

评论数 0

Linux内核基础--事件通知链(notifier chain)

内核通知链 1.1. 概述        Linux内核中各个子系统相互依赖,当其中某个子系统状态发生改变时,就必须使用一定的机制告知使用其服...

2018-09-30 16:25:24

阅读数 61

评论数 0

x86体系Linux内核进程切换原理(64位和32位)

首先简单提一下这个宏和函数的被调用关系:     schedule() --> context_switch() --> switc...

2018-09-20 14:47:57

阅读数 186

评论数 0

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