git: vkernel - Fix corrupt tailq (vkernel64 only)

Previous thread: git: hammer - Describe live_dedup_cache_size sysctl by Samuel Greear on Tuesday, January 4, 2011 - 2:37 pm. (1 message)

Next thread: none
From: Matthew Dillon
Date: Tuesday, January 4, 2011 - 4:09 pm

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/74c9628e78f2e1c7d9356b41407b39...


-- 
DragonFly BSD source repository
Previous thread: git: hammer - Describe live_dedup_cache_size sysctl by Samuel Greear on Tuesday, January 4, 2011 - 2:37 pm. (1 message)

Next thread: none