Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 May 2001 19:34:30 -0700 (PDT)
From:      Greg Lehey <grog@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/dev/vinum vinumlock.c
Message-ID:  <200105220234.f4M2YUv16228@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
grog        2001/05/21 19:34:30 PDT

  Modified files:
    sys/dev/vinum        vinumlock.c 
  Log:
  Add a new debug flag, DEBUG_LOCKREQS, which logs only lock requests.
  Use this instead of DEBUG_LASTREQS to decide whether to log lock
  requests.
  
  MFS:
  
  vinumlock: Catch a potential race condition where one process is
             waiting for a lock, and between the time it is woken and
             it retries the lock, another process gets it and places it
             in the first entry in the table.
  
             This problem has not been observed, but it's possible, and
             it's easy enough to fix.
  
  Submitted by:   tegge
  
  vinumunlock: Catch a real bug capable of hanging a system.  When
               releasing a lock, vinumunlock() called wakeup_one.  This
               caused wakeups to sometimes get lost.  After due
               consideration, we think that this is due to the fact that
               you can't guarantee that some other process is also
               waiting on the same address.  This makes wakeup_one a
               very dangerous function to use.
  
  Revision  Changes    Path
  1.23      +26 -13    src/sys/dev/vinum/vinumlock.c


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200105220234.f4M2YUv16228>