内核调试工具crash使用 前言在编写内核驱动的过程中,时不时就导致内核崩溃,也没啥好的调试方法,要么dmesg打印内核日志,要么搭建kgdb环境调试,但kgdb比较繁琐,dmesg有时候也不能打印内核堆栈,故调试内核纯看运气,如果是能稳定复现的bug还好调试,最怕的就是测试程序刚开始跑的好好的,突然鼠标动不了了,这个时候就知道糟了。 之前的思路是一直时快速刷新dmesg以求能看到内核崩溃时日志打印,但没有成功过。后面 2023-05-21 内核驱动开发记录
fio引发的一些问题 奇怪的255扇区由于块设备驱动项目需要测试读写速度,故使用fio工具,没想着深入了解,简单测个速就可以使用tldr命令得到测试磁盘读写的命令 123456789101112131415161718192021222324252627282930313233343536# tldr命令介绍tldr tldrtldrDisplay simple help pages for command-li 2023-05-20 内核驱动开发记录
femu使用记录 Briefly speaking, FEMU is a fast, accurate, scalable, and extensible NVMe SSD Emulator. Based upon QEMU/KVM, FEMU is exposed to Guest OS (Linux) as an NVMe block device (e.g. /dev/ 2023-05-09 学习记录
leveldb自定义env 由于项目需求,需要自定义LevelDB的env,也就是以块接口实现env中各个文件接口,在网上没找到类似的代码,就打算自己参照util/env_posix.cc实现一个简单的demo,等到功能实现差不多的时候,却发现leveldb有一个类似功能的代码helpers/memenv/memenv.cc,且各方面都写的比我好,故这篇博客主要记录实现过程中遇到的问题 2023-05-05 leveldb学习日记
spdk环境搭建 本来21年就写了这篇博客,但因为在博客中放了vmware的密钥,违规了,最近正好又要用到spdk,就重新搭建一下spdk,简单改一下博客再发一遍 运行环境VMware16+Ubuntu21.04Ubuntu下载地址:https://repo.huaweicloud.com/ubuntu-releases/安装后记得换源 源码拉取1234官网给出的命令如下git clone https://g 2023-04-16 zns ssd-femu-nvme-spdk-dpdk
博客重载记录 前言: 有时候看了一些比较好的文章,过几天就忘了,想想不如自己实现一遍博客代码或按博客结构自己写一遍,加深印象,但把别人的内容改个名字变成自己的博客,有点不太好,故全写在这个博客中,权当个人记录。 流控算法实现参考文章:流量控制-从原理到实现面试官:来,年轻人!请手撸5种常见限流算法! 计数器 123456789101112131415161718192021#include <b 2023-03-26 学习记录
面试代码记录 面试代码题可以刷一刷CodeTop 链表是否存在环给你一个链表的头节点 head ,判断链表中是否有环。 123456789101112131415161718#include <stdio.h>#include <stdbool.h>struct ListNode { int val; struct ListNode* next;};bool 2023-03-16 算法
linux UIO驱动实践 环境搭建Ubuntu20地址虚拟机安装与配置见博客开头:驱动虚拟环境搭建记录 一直以为用镜像直接安装的Ubuntu没有内核源码,不能用来编译驱动,只能由源码编译内核后切换内核才能进行驱动的编译,没想到一安装完就可以编译了,错误的印象。用hello world测试环境是否搭建成功 12345678910111213141516171819#include <linux/init.h 2023-03-07 内核驱动开发记录
NVMe驱动注释(持续更新) 往期文章:NVMe驱动学习记录-1NVMe驱动学习记录-2NVMe驱动 请求路径学习记录 整合了之前文章的一些内容 参考源码地址:https://mirrors.tuna.tsinghua.edu.cn/kernel/v4.x/linux-4.19.90.tar.gz linux-4.19.90\drivers\nvme\host 源码阅读环境:Windows 搭建 openg 2023-03-06 学习记录
leetcode记录2 推荐博客五大常用算法:分治、动态规划、贪心、回溯和分支界定刷题时注意边界条件/特殊条件的处理leetcode记录1 树的子结构输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值。 思路: 由于是树相关的题目,故大致思路就是使用递归解决,也意识到需要借助辅助函数实现,但一直无法确定辅助函数的写法与用 2023-03-02 算法