git: kernel - Fix MP race in sysv semaphore code

Sepherosa Ziehau sepherosa at gmail.com
Wed Jul 11 19:47:33 PDT 2012


On Thu, Jul 12, 2012 at 6:36 AM, Matthew Dillon
<dillon at crater.dragonflybsd.org> wrote:
>
> commit ead166eb4dd3c39eebe6407577f577dee061c743
> Author: Matthew Dillon <dillon at 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(-)

Grr, I think some header file changes are not committed.  P_SYSVSEM is
not defined.

Best Regards,
sephe

-- 
Tomorrow Will Never Die





More information about the Commits mailing list