git: kernel - Fix additional races in lwp_signotify()

看板DFBSD_commit作者時間14年前 (2011/11/18 03:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 81cd8ede74a6a09d318c1642787a8b8936374786 Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Thu Nov 17 10:44:16 2011 -0800 kernel - Fix additional races in lwp_signotify() * lwp_signotify() was improperly scheduling threads whos td_gd is on the local cpu without checking the SINTR flags. This can catch a thread in the middle of being transitioned to another cpu and cause havoc. * Only schedule the thread if the SINTR flags are set. * We can't call setrunnable() from an IPI so adjustments have to be made in the remote cpu to set the lp's lwp_stat state before issuing the IPI and only do the scheduling of its thread from the IPI function. Reported-by: ftigeot Summary of changes: sys/kern/kern_sig.c | 81 ++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 58 insertions(+), 23 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/81cd8ede74a6a09d318c1642787a8b8936374786 -- DragonFly BSD source repository
文章代碼(AID): #1EnLdq2F (DFBSD_commit)