0
点赞
收藏
分享

微信扫一扫

iouring修改记录


问题:

1) 为什么 从用户进程创建内核线程

2) 为什么采用task work的机制

void io_wq_worker_sleeping(struct task_struct *tsk)  增加

​​https://lkml.org/lkml/2020/8/19/561​​

2.  增加 cond_resched

​​[PATCH] io_uring: allow conditional reschedule for intensive iterators​​


内核不可抢占系统中(如centos系统),在内核态运行的程序可调用cond_resched主动让出cpu,防止其在内核态执行时间过长导致可能发生的soft lockup或者造成较大的调度延迟。

cat /boot/config-4.19.0-arm64-desktop |grep -i CONFIG_PREEMPT
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_NOTIFIERS=y
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set

举报

相关推荐

0 条评论