DragonFly BSD
DragonFly commits List (threaded) for 2011-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: vkernel - Fix corrupt tailq (vkernel64 only)


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 4 Jan 2011 15:09:25 -0800 (PST)

commit 74c9628e78f2e1c7d9356b41407b394220745b7e
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Tue Jan 4 15:06:59 2011 -0800

    vkernel - Fix corrupt tailq (vkernel64 only)
    
    * Properly remove an exiting thread from any tsleep queue it might be
      enqueued on (due to tsleep_interlock() use cases) prior to exiting.
    
    * Fixes tailq corruption which can occur with threaded programs.
    
    * Fix is only applicable to vkernel64.  All other platforms already
      properly remove the thread.
    
    * Assert that an exiting thread has been removed from any sleep queue
      before freeing it in kern_exit.c to catch any future cases.

Summary of changes:
 sys/kern/kern_exit.c                       |    2 ++
 sys/kern/kern_synch.c                      |   17 ++++++++++++-----
 sys/kern/lwkt_thread.c                     |    6 ++++--
 sys/platform/vkernel64/x86_64/vm_machdep.c |    2 ++
 4 files changed, 20 insertions(+), 7 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/74c9628e78f2e1c7d9356b41407b394220745b7e


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]