NVME驱动
文章平均质量分 89
古猫先生
长期混迹存储领域,先后供职于知名半导体外企和互联网存储研发,欢迎留言or私信交流~
展开
-
Linux NVMe Driver学习笔记之9: nvme_reset_work压轴大戏
这篇文章紧接上回分解,在nvme_probe函数的最后一步调用nvme_reset_work进行reset操作,nvme_reset_work的主要工作可以概括如下几个步骤:原创 2022-10-30 20:28:34 · 1641 阅读 · 1 评论 -
Linux NVMe Driver学习笔记之8:IO SQ/CQ的创建过程
这篇文章紧接上回分解,在nvme_probe函数的最后一步调用nvme_reset_work进行reset操作,nvme_reset_work的主要工作可以概括如下几个步骤:原创 2022-10-30 20:27:51 · 2702 阅读 · 0 评论 -
Linux NVMe Driver学习笔记之7:Identify初始化及命令提交过程
上面代码中,我们可以看到在赋值c.identify.cns时,采用了cpu_to_le32这样的函数,因为在nvme协议里规定的一些消息格式都是按照小端存储的,但是我们的主机可能是小端的x86,也可能是大端的arm或者其他类型,用了这样的函数就可以做到主机格式和小端之间的转换,让代码更好得跨平台,这也是Linux系统强大的地方。上篇文章中,我们解析了nvme_init_queue和nvme_alloc_admin_tags的内容,本文我们接着介绍nvme_reset_work中的其他函数。原创 2022-10-30 20:23:54 · 3092 阅读 · 0 评论 -
Linux NVMe Driver学习笔记之5:Admin SQ/CQ的创建
通过系统调用,用户空间的应用程序就会进入内核空间,由内核代表该进程运行于内核空间,这就涉及到上下文的切换,用户空间和内核空间具有不同的地址映射,通用或专用的寄存器组。所谓的进程上下文,就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈中的内容,当内核需要切换到另一个进程时,它需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行。这个函数主要的工作是设置中断处理函数,默认情况下不使用线程化的中断处理,而是使用中断上下文的中断处理。原创 2022-10-17 21:24:37 · 1918 阅读 · 0 评论 -
Linux NVMe Driver学习笔记之4:nvme_reset_work解析
这篇文章紧接上回分解,nvme_reset_work是nvme_probe函数中的最后一个重要函数,nvme_porbe相关内容请先移步翻阅上一篇文章:原创 2022-10-07 12:55:41 · 1570 阅读 · 0 评论 -
Linux NVMe Driver学习笔记之3:nvme_probe函数解析
这篇文章紧接上回分解,想知道小编为啥要解析nvme_probe函数,请先移步翻阅上一篇文章:原创 2022-10-06 20:50:17 · 2338 阅读 · 0 评论 -
Linux NVMe Driver学习笔记之2:初始化
上回,我们学习了Linux NVMe驱动的架构以及nvme_core_init的相关内容(),本文我们主要学习一下Linux NVMe驱动初始化过程中都做了哪些事情。原创 2022-10-05 21:21:58 · 1794 阅读 · 0 评论 -
Linux NVMe Driver学习笔记之1:概述与nvme_core_init函数解析
小编这里学习的NVMe driver内容是Linux-4.10.6中的相关代码原创 2022-09-12 21:39:59 · 3926 阅读 · 1 评论