在排查一个nvme的的workqueue的问题的时候,发现nvme的queue的进程名被截断了,

[root@localhost caq]# ps -ef |grep -i nvme
root : ? :: [nvme]
root : pts/ :: grep --color=auto -i nvme
root : ? :: [xfs-buf/nvme0n1]
root : ? :: [xfs-data/nvme0n]
root : ? :: [xfs-conv/nvme0n]
root : ? :: [xfs-cil/nvme0n1]
root : ? :: [xfs-log/nvme0n1]
root : ? :: [xfsaild/nvme0n1]
root : ? :: [xfs-buf/nvme1n1]
root : ? :: [xfs-data/nvme1n]
root : ? :: [xfs-conv/nvme1n]
root : ? :: [xfs-cil/nvme1n1]
root : ? :: [xfs-log/nvme1n1]
root : ? :: [xfsaild/nvme1n1]
root : ? :: [xfs-buf/nvme2n1]
root : ? :: [xfs-data/nvme2n]
root : ? :: [xfs-conv/nvme2n]
root : ? :: [xfs-cil/nvme2n1]
root : ? :: [xfs-log/nvme2n1]
root : ? :: [xfsaild/nvme2n1]
root : ? :: [xfs-buf/nvme3n1]
root : ? :: [xfs-data/nvme3n]
root : ? :: [xfs-conv/nvme3n]
root : ? :: [xfs-cil/nvme3n1]
root : ? :: [xfs-log/nvme3n1]
root : ? :: [xfsaild/nvme3n1]
root : ? :: [dio/nvme0n1]
root : ? :: [dio/nvme2n1]
root : ? :: [dio/nvme1n1]
root : ? :: [dio/nvme3n1]

一开始怀疑是ps命令截断了,然后看一下crash中对应的长度,发现也是截断的。

crash> ps |grep xfs-reclaim/sda
ffff885f5eab3f40 IN 0.0 [xfs-reclaim/sda]
ffff8857066f8fd0 IN 0.0 [xfs-reclaim/sda]
ffff885705eb8000 IN 0.0 [xfs-reclaim/sda]
ffff8855553b8000 IN 0.0 [xfs-reclaim/sda]
ffff88291574eeb0 IN 0.0 [xfs-reclaim/sda]
ffff885555e5eeb0 IN 0.0 [xfs-reclaim/sda]
ffff8855556adee0 IN 0.0 [xfs-reclaim/sda]

一个工作队列的创建流程如下,比如使用alloc_workqueue--->__alloc_workqueue_key--->

    rescuer->rescue_wq = wq;
rescuer->task = kthread_create(rescuer_thread, rescuer, "%s",
wq->name); char name[WQ_NAME_LEN]; /* I: workqueue name */
WQ_NAME_LEN = 24,

所以按道理应该是23字节的长度,再继续看

#define kthread_create(threadfn, data, namefmt, arg...) \
kthread_create_on_node(threadfn, data, -, namefmt, ##arg) struct task_struct *kthread_create_on_node(int (*threadfn)(void *data),
void *data, int node,
const char namefmt[],
...)
{
struct kthread_create_info create; create.threadfn = threadfn;
create.data = data;
create.node = node;
init_completion(&create.done); spin_lock(&kthread_create_lock);
list_add_tail(&create.list, &kthread_create_list);
spin_unlock(&kthread_create_lock); wake_up_process(kthreadd_task);
wait_for_completion(&create.done); if (!IS_ERR(create.result)) {
static const struct sched_param param = { .sched_priority = };
va_list args; va_start(args, namefmt);
vsnprintf(create.result->comm, sizeof(create.result->comm),
namefmt, args);-----------被截断了
va_end(args);

char comm[TASK_COMM_LEN]; /* executable name excluding path
                           - access with [gs]et_task_comm (which lock
                           it with task_lock())
                           - initialized normally by setup_new_exec */

/* Task command name length */
#define TASK_COMM_LEN 16

所以又被截断成了15字节。所以只能展示这么多。

linux workqueue的名字长度小问题的更多相关文章

  1. linux常用命令与实例小全

    转至:https://www.cnblogs.com/xieguohui/p/8296864.html  linux常用命令与实例小全 阅读目录(Content) 引言 一.安装和登录 (一)    ...

  2. Linux下提权常用小命令

    有些新手朋友在拿到一个webshell后如果看到服务器是Linux或Unix操作系统的就直接放弃提权,认为Linux或Unix下的提权很难,不是大家能做的,其实Linux下的提权并没有很多人想象的那么 ...

  3. Material Design Reveal effect(揭示效果) 你可能见过但是叫不出名字的小效果

    Material Design Reveal effect(揭示效果) 你可能见过但是叫不出名字的小效果 前言: 每次写之前都会来一段(废)话.{心塞...} Google Play首页两个tab背景 ...

  4. [内核]Linux workqueue

    转自:http://blog.chinaunix.net/uid-24148050-id-296982.html 一.workqueue简介workqueue与tasklet类似,都是允许内核代码请求 ...

  5. Linux workqueue疑问【转】

    转自:http://blog.csdn.net/angle_birds/article/details/9387365 各位大神,你们好.我在使用workqueue的过程中遇到一个问题. 项目采用uC ...

  6. Linux没有最小只有更小----迷你Linux版本大集合(转)

    [自从去年到现在已经收集了上百种版本的Linux和Unix,至于Unix就不想说了,没有Linux的功底是很难驾驭Unix的,我在这里只把小于360M的Linux以及一些非Linux但是很像Linux ...

  7. 2019-9-2-dotnet-命名管道名字长度限制

    title author date CreateTime categories dotnet 命名管道名字长度限制 lindexi 2019-09-02 11:54:50 +0800 2019-09- ...

  8. Linux Workqueue【转】

    转自:http://kernel.meizu.com/linux-workqueue.html 21 August 2016   Workqueue 是内核里面很重要的一个机制,特别是内核驱动,一般的 ...

  9. 刚接触Linux,菜鸟必备的小知识点(一)

    身为一个将要大四的学生,而且还是学计算机的没有接触过linux简直是羞愧难当.这个假期做了一个软件测试员,必须要熟悉linux的操作,所以对于我这个菜鸟我也就说几点比较重要的小知识点吧. 第一.cd指 ...

随机推荐

  1. jQuery 属性(十二)

    属性 描述 context 在版本 1.10 中被弃用.包含传递给 jQuery() 的原始上下文. jquery 包含 jQuery 版本号. jQuery.fx.interval 改变以毫秒计的动 ...

  2. Linux下设置SSH端口

    SSH 为 Secure Shell的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目前较可靠,专为远程登录会话 ...

  3. 使用Tomcat的Reload提高开发速度(翻译)

    欢迎转载http://www.cnblogs.com/coodream2009,有翻译的不太准确的地方请大家指出,我继续修改完善. 按照Java Servlet规范第四部分推荐的,Tomcat系统的实 ...

  4. Hive thrift服务(将Hive作为一个服务器,其他机器可以作为客户端进行访问)

    步骤一:启动为前台:bin/hiveserver2 步骤二:启动为后台:nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log ...

  5. powershell V6.0登基之:《瘸腿脚本大帝进攻linux!》

    ------[前言]------ 每个ps大版本发布,我都会写个消息. 这次的,主标题就叫:powershell v6.0登基副标题就叫:<瘸腿脚本大帝进攻linux!> ------[p ...

  6. MySQL并发复制系列二:多线程复制 2016

    并发复制(Parallel Replication) 系列二: Enhanced Multi-threaded Slaves作者:沃趣科技MySQL数据库工程师  麻鹏飞 首先梳理下传统MySQL/M ...

  7. java 重定向和转发的区别

    注:原创链接  http://www.cnblogs.com/shenliang123/archive/2011/10/27/2226892.html response.sendredirect(&q ...

  8. UML中类图的一些基本知识

    一.类 类(class)封装了数据和行为,是面向对象的重要组成部分,他是具有相同操作.属性.关系的对象集合的总称. 在软件运行时,类被实例化成对象(object),对象对应某个具体的事物,是类的实例( ...

  9. 解析Linux中的VFS文件系统之文件系统的注册(二)

    继上一篇文章:http://www.cnblogs.com/linhaostudy/p/7397024.html 3. 文件系统的注册 这里的文件系统是指可能会被挂载到目录树中的各个实际文件系统,所谓 ...

  10. Gym 101612C Consonant Fencity

    原题传送门 题意:给定一个只含小写字母的字符串,假设aeiouyw为元音字母,现在要把一些字母变为大写,要求相同字母的大小写必须相同,统计变化后的字符串中有多少对相邻.同为辅音字母且大小写不一样的字符 ...