svn commit: r227226 - stable/9/sys/geom

Alexander Motin mav at FreeBSD.org
Sun Nov 6 16:54:24 UTC 2011


Author: mav
Date: Sun Nov  6 16:54:23 2011
New Revision: 227226
URL: http://svn.freebsd.org/changeset/base/227226

Log:
  MFC r226985:
  Workaround the problem introduced by combination of r162200 and r215687.
  r162200 delays provider orphanization until all running requests complete,
  to workaround broken orphan() method implementation in some classes.
  r215687 removes persistent periodic (10Hz) event thread wake ups.
  Together these changes can indefinitely delay orphanization until some
  other event wake up the event thread. One consequence of this is inability
  of CAM to destroy device disconnected when busy and, as consequence, create
  new one after reconnection.
  
  While the best solution would be to revert r162200, it is not easy, as
  some classes still broken in that way. Instead conditionally wake up event
  thread if there are some providers waiting for orphanization.
  
  Approved by:	re (kib)

Modified:
  stable/9/sys/geom/geom_event.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/amd64/include/xen/   (props changed)
  stable/9/sys/boot/   (props changed)
  stable/9/sys/boot/i386/efi/   (props changed)
  stable/9/sys/boot/ia64/efi/   (props changed)
  stable/9/sys/boot/ia64/ski/   (props changed)
  stable/9/sys/boot/powerpc/boot1.chrp/   (props changed)
  stable/9/sys/boot/powerpc/ofw/   (props changed)
  stable/9/sys/cddl/contrib/opensolaris/   (props changed)
  stable/9/sys/conf/   (props changed)
  stable/9/sys/contrib/dev/acpica/   (props changed)
  stable/9/sys/contrib/octeon-sdk/   (props changed)
  stable/9/sys/contrib/pf/   (props changed)
  stable/9/sys/contrib/x86emu/   (props changed)

Modified: stable/9/sys/geom/geom_event.c
==============================================================================
--- stable/9/sys/geom/geom_event.c	Sun Nov  6 16:52:26 2011	(r227225)
+++ stable/9/sys/geom/geom_event.c	Sun Nov  6 16:54:23 2011	(r227226)
@@ -294,7 +294,7 @@ g_run_events()
 		} else {
 			g_topology_unlock();
 			msleep(&g_wait_event, &g_eventlock, PRIBIO | PDROP,
-			    "-", 0);
+			    "-", TAILQ_EMPTY(&g_doorstep) ? 0 : hz / 10);
 		}
 	}
 	/* NOTREACHED */


More information about the svn-src-stable-9 mailing list