安庆

导航

2017年12月21日 #

linux nvme的那些workqueue

摘要: 目前nvme三个常见的使用的workqueue ,主要有nvme_workq,nvme_rdma_wq ,nvme_fc_wq,下面一一描述一下初始化及使用的场景。分别对应于NVME over PCIE,NVMe over RDMA ,NVMe over Fabrics这三种部署场景。 nvme_w 阅读全文

posted @ 2017-12-21 10:34 _备忘录 阅读(929) 评论(0) 推荐(0) 编辑

2017年12月19日 #

linux nvme的sendfile流程

摘要: 在nvme的硬盘上使用sendfile系统调用,到底需要经过哪些流程? do_sendfile >do_splice_direct-->splice_direct_to_actor >do_splice_to 对于xfs,其实就是xfs_file_splice_read xfs_file_splic 阅读全文

posted @ 2017-12-19 20:15 _备忘录 阅读(1101) 评论(0) 推荐(0) 编辑

linux workqueue的名字长度小问题

摘要: 在排查一个nvme的的workqueue的问题的时候,发现nvme的queue的进程名被截断了, 一开始怀疑是ps命令截断了,然后看一下crash中对应的长度,发现也是截断的。 一个工作队列的创建流程如下,比如使用alloc_workqueue >__alloc_workqueue_key > 所以 阅读全文

posted @ 2017-12-19 19:03 _备忘录 阅读(750) 评论(0) 推荐(0) 编辑

linux的nvme驱动需要关心的统计项

摘要: blk-mq-sysfs.c生成了一些其他的nvme的统计项, 有多少个online的cpu,在驱动加载的时候会默认生成多少个队列,除非内存不足或者在保留内核中,则会减少。 [root@localhost mq]# ls0 10 12 14 16 18 2 21 23 25 27 29 30 32 阅读全文

posted @ 2017-12-19 14:21 _备忘录 阅读(1030) 评论(0) 推荐(0) 编辑

linux 中nvme 的中断申请及处理

摘要: 中断的描述符如上所述。作为背景知识,可以理解下面的内容,本文讨论基于的内核版本信息如下: 我们知道,nvme的多队列,默认按照核数的多少来设置,目前nvme的队列有两种,admin队列,IO队列,两者都属于nvme_queue对象,submit queue,complete queue是一个nvme 阅读全文

posted @ 2017-12-19 10:43 _备忘录 阅读(4058) 评论(0) 推荐(0) 编辑

linux的nvme驱动参数调优

摘要: nvme的设备,可以调优的参数比较少,相关的代码如下: 参数列表如下: 其中属性为只读的,肯定直接通过/sys/没法修改,有的硬编码的跟驱动相关,可以尝试修改驱动。其余可以尝试调优的参数如下: 1.nomerges (RW) This enables the user to disable the 阅读全文

posted @ 2017-12-19 09:44 _备忘录 阅读(2652) 评论(0) 推荐(0) 编辑

2017年12月5日 #

linux 保留内核中sas驱动的加载导致crash问题

摘要: 问题描述,在crash的时候,小内核因为分配中断号失败而触发panic,打印如下:(备注:本文大内核就是指正常运行的内核,小内核是用于kdump收集crash的内核,下同) 串口打印如下: 而在大内核中,加载打印如下: 一开始只注意到分配中断失败,但没有注意到在小内核中是加载的sas驱动是32位模式 阅读全文

posted @ 2017-12-05 15:06 _备忘录 阅读(2983) 评论(0) 推荐(0) 编辑

2017年12月4日 #

linux 动态库的符号冲突问题

摘要: 最近,给同事定位了一个符号表的冲突问题,简单记录一下。 A代码作为静态链接库,被包含进了B代码,然后编译成了动态链接库,B.so A代码同时作为静态链接库,被编译进入了main的主代码。 main函数调用B.so里面的函数,同时B.so里面的函数调用了A代码,结果进程异常退出了。 查看符号表,发现调 阅读全文

posted @ 2017-12-04 09:07 _备忘录 阅读(3227) 评论(0) 推荐(0) 编辑

2017年11月29日 #

linux 3.10的kdump配置的小坑

摘要: 之前在2.6系列linux内核中,当发现某个模块不要在保留内核中加载的时候,可以通过blacklist参数将其在/etc/kdump.conf中屏蔽 blacklist <list of kernel modules> 最近发现某个sas驱动存在问题,所以打算也这么屏蔽,结果,出错了: 发现blac 阅读全文

posted @ 2017-11-29 09:37 _备忘录 阅读(3720) 评论(0) 推荐(0) 编辑

2017年11月18日 #

linux 磁盘加密和tpm搭配使用1

摘要: 一.基本名称,容易混淆 1.dm-crypt是linux的2.6内核开始集成的一种磁盘加密功能。十几年来,连sche调度算法都被改了N次,但dm-crypt一直稳定在内核中,稳定性还是很好的。 2.cryptsetup是linux一般自带的一个用户态工具,用来操作dm-crypt。 3.luks是d 阅读全文

posted @ 2017-11-18 11:42 _备忘录 阅读(4965) 评论(1) 推荐(1) 编辑