高并发的中断下半部tasklet实例解析

  1. 云栖社区>
  2. AliDataOps>
  3. 博客>
  4. 正文

高并发的中断下半部tasklet实例解析

KB小秘书 2019-07-25 23:38:14 浏览522
展开阅读全文

最近为了解决一个技术问题,需要用到内核里中断下半部的tasklet机制,使用过程遇到了非常有趣的问题。在解决问题过程中,也逐步加深了对tasklet机制的理解。本文把这些收获记录下来和大家一起分享,经3.10测试通过

一、问题发生的场景

出于排查磁盘IO方面问题的原因,需要利用内核tracepoint技术详细地监测磁盘IO的明细行为信息,如下git为代码示例。

image.png

其中关键部分代码摘要如下。

image.png

这里不必对tracepoint机制进行深究,只需要了解blk_add_trace_rq_insert1回调函数对应于linux内核函数中的block_rq_insert静态探针点,block_rq_insert探针点在__elv_add_request内核函数的开头处打点(trace_block_rq_insert处),如下代码所示。每一次__elv_a

网友评论

登录后评论
0/500
评论
KB小秘书
+ 关注
所属团队号: AliDataOps