git: kernel - Fix list corruption in dsched

看板DFBSD_commit作者時間15年前 (2011/02/13 06:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
commit 0b81692c192f8106f3048aff53e3f6f77731d565 Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Sat Feb 12 13:30:16 2011 -0800 kernel - Fix list corruption in dsched * dsched_thread_ctx_alloc() was not acquiring the global lock across calls to dsched_thread_io_alloc(), creating a race condition in the call to TAILQ_INSERT_TAIL(&tdio->diskctx->tdio_list, ...). This case can occur under heavy fork/exit loads, particularly when (soon) fork and exit get out from the MP lock, but even with the MP lock on the frontend it can occur against the dsched backend. * dsched_new_policy_thread_tdio() was not acquiring the global lock across its initial call to dsched_thread_io_alloc(). This case could only occur with extreme rarity. Summary of changes: sys/kern/kern_dsched.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/0b81692c192f8106f3048aff53e3f6f77731d565 -- DragonFly BSD source repository
文章代碼(AID): #1DLmCZAq (DFBSD_commit)
文章代碼(AID): #1DLmCZAq (DFBSD_commit)