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

git: kernel - Fix MP race in sysv semaphore code


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 11 Jul 2012 15:36:34 -0700 (PDT)

commit ead166eb4dd3c39eebe6407577f577dee061c743
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Wed Jul 11 15:29:55 2012 -0700

    kernel - Fix MP race in sysv semaphore code
    
    * Fix a serious MP race in the sysv semaphore code due to a lack of
      protection of the semu* global structures.
    
    * The race occurs during semaphore allocation and deallocation vs ANY
      exiting process (even if it does not use semaphores), potentially
      leading to a live-lock in the semu_list scan code.
    
      The live-lock will prevent the cpu it occurs on from being able to
      switch to another kernel or user thread.  In the sample case it
      stopped pagedaemon from running, creating a backlog in the I/O
      subsystem which locked the computer up.
    
    Reported-by: Peter Avalos

Summary of changes:
 sys/kern/sysv_sem.c |   86 +++++++++++++++++++++++++++++++++++----------------
 1 files changed, 59 insertions(+), 27 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/ead166eb4dd3c39eebe6407577f577dee061c743


-- 
DragonFly BSD source repository



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