git: vkernel - Fix corrupt tailq (vkernel64 only)

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
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 message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
git: vkernel - Fix corrupt tailq (vkernel64 only), Matthew Dillon, (Tue Jan 4, 4:09 pm)