自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (5)
  • 收藏
  • 关注

原创 Linux3.19内核block层出现新变化,增加 multi-queue block layer

最近Linux的最新内核已经release到Linux-3.19-rc6,根据Linus的release note,大约再经过一次rc7版本就可以正式release了。Linux 3.19内核在block层的最大变化就是增加了一个multi-queue block layer,来更好的支持类似于NVME等支持multi-queue机制的设备。所谓的multi-queue机制就是在多核CPU的情况下

2015-01-29 09:24:31 8174

原创 bio与bio_vec

通用块层的核心数据结构称为bio描述符,它描述了块设备的io操作。每一个bio结构都包含一个磁盘存储区标识符(存储区中的起始扇区号和扇区数目)和一个或多个描述与IO操作相关的内存区段(bio_vec数组)

2014-12-25 14:34:26 6248

原创 Linux Shell下的快捷键

Linux Shell下的快捷键Ctrl相关Alt相关 & ESC相关Ctrl + A光标回行首(等同Home)Alt + >历史记录第一条Ctrl + E光标到行尾(等同于End)Alt + 历史记录最后一条Ctrl + C

2014-11-21 10:52:39 978

原创 Linux字符设备驱动程序框架

1:注册设备,注册设备或者模块加载的时候,必须将设备登记到内核相应的设备数组,并返回设备的主设备号2:定义功能函数,对于每一个驱动函数来说,都有一些和该设备密切相关的功能函数,拿最常用的字符设备来来说,存在着诸如open() read() write() ioctl()这一类的操作,当系统使用这些系统调用的时候,将自动使用驱动模块中的特定的函数来执行具体的操作。而对于特地的设备,上面的系统调用

2014-11-17 10:18:56 1399

原创 NVME协议栈剖析

从代码上来看,NVME的协议栈直接从Block层下来,不

2014-11-14 15:10:24 10535 2

原创 NVME Drive分析之 Detailed IO Process

2014-11-14 14:53:17 2215

原创 NVME Driver分析之nvme_submit_sync_cmd

前面在分支创建 I/O Completion Queue 命令时我们提到了,Admin command的提交,使用了nvme_submit_admin_cmd函数,该函数其实是调用了nvme_submit_sync_cmd(dev, 0, cmd, result, ADMIN_TIMEOUT);,即提交了一个同步的命令。

2014-11-13 17:29:52 3565

原创 NVME Driver 解析之Create I/O Completion Queue command

NVME Driver 解析之Create I/O Completion Queue command先看一下spec中对Create I/O Completion Queue command的说明Create I/O Completion Queue command就是把上面各个结构体填充好,然后发命令写到queue的tail中,然后按一下dooorbell的门铃s

2014-11-13 16:39:33 4711

原创 NVME Driver分析之nvme_dev_add函数分析

nvme_dev_add @ nvme_probe①int shift = NVME_CAP_MPSMIN(readq(&dev->bar->cap)) + 12;//计算shift,为2的shift次幂②mem = dma_alloc_coherent(&pdev->dev, 8192, &dma_addr, GFP_KERNEL);//这块空间用于读取identifier cont

2014-11-13 16:12:32 3533

原创 NVME driver分析之nvme_dev_start函数分析

3.1 nvme_dev_start函数分析3.1.1 nvme_dev_map@nvme_dev_start函数分析①pci_enable_device_mem(pdev)//为user初始化pci device的memory space②dev->entry[0].vector = pdev->irq;//给中断向量赋值③pci_set_master(p

2014-11-13 16:01:55 5460 1

原创 NVME Driver解析之init与probe

本文说使用的代码版本是Linux3.16.3代码位置drivers\block\nvme-core.c  include/linux/nvme.hNVMe driver的init过程,nvme的初始化过程主要跟两个函数有关,一个是nvme_init,另一个还nvme_probe,本文主要讲一下nvme_init和nvme_probe分别做了什么以及如何从nvme_init进入到nv

2014-11-13 15:51:48 7655 1

原创 硬盘中的扇区,Linux Driver 中Block的块,以及内存中的段和页

扇区是硬件设备传送数据的基本单位,而块是VFS和文件系统传送数据的基本单位一个块对应磁盘上一个或多个相邻的扇区,而VFS系统将其看成是一个单一的数据单元。扇区:为了达到可接受的性能,硬盘和类似的设备快速传送几个相邻字节的数据。块设备的每次数据传输操作都是作用于一组称为扇区的相邻字节。大部分磁盘设备中,一个扇区的大小是512字节。块:在Linux中,块的大小必须四

2014-11-13 15:45:19 3523

原创 关于NDK动态链接库中调用动态链接库一种错误的解决办法

做了两个动态链接库,一个是testpointer.so,另一个是test.so。在test.so里使用LOCAL_SHARED_LIBRARIES := testpointer调用libtestpointer.soAndroid.mk文件如下 LOCAL_PATH :

2011-09-20 09:51:59 1362 1

keyboard-shortcuts-linux.pdf

visual studio code 快捷键大全, 在linux下使用vs code的快捷键大全

2019-07-17

Linux设备驱动第三版随书源代码LDD3

《Linux设备驱动》第三版随书源代码LDD3

2015-04-17

c语言的arm编程实例

c开发arm开发,为初学者提供一些参考。内容不多,入门可用

2012-03-10

DCT变化pdf英文资料

DCT变换一书的英文原版,本书对深入理解DCT变换油很大帮助

2010-10-25

DCT变换pdf格式英文资料

DCT变换一书的英文原版,本书对大家深入理解DCT有很大帮助

2010-10-25

空空如也

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

TA关注的人

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