很长一段时间跨越很多内核版本,多个 kretprobe_instance 以 hlist_node 的方式挂接在以 task 地址 hash 为 key 的 hlist 上,而对 hlist_node 的 CURD 必然涉及 lock,对于高频调用的热点函数,kretprobe 里的这个 lock 相当于自设的路障,hash 到同一个 bucket 的 task 同时调用一个函数时会被串行化,严重影响性能,甚至使系统 soft/hard lockup。这是一个知道的人很少的秘密。还有吗,还有,但不相关了。
网友评论已有0条评论, 我也要评论